Quote Originally Posted by Brian Henry View Post
I am having no luck.
In what way is it not working? What do you expect to happen, and what actually happens?

Quote Originally Posted by Shaggy Hiker View Post
If you raise that event from a background thread, you'll be raising it on the wrong thread.
True dat. You don't want to be messing around with Invokes in the form code if you can avoid it. You can make sure events are raised on the thread that created the UDP_Broadcast instance (presumably it is created on the UI thread?) by taking a reference to the SynchronizationContext.Current property in the constructor (add a Public Sub New() method). This will give you a SynchronixationContext instance that you can call Post or Send from the secondary thread to execute code on the first thread. These two methods are analogous to BeginInvoke and Invoke, respectively.