I'm designing a class that makes use of threads. These threads sometimes fire events, and when these events are handled in a form(outside of the class), they cause cross-threading exceptions. Now of course I can solve this by using Invoke methods or delegates, but I wonder if I could code the class in such a way the problem is already solved inside the class, this would make the class way more user-friendly. I couldn't find any clear solution on the web, that's why I'm asking here. Any kind of documentation/tutorial/example on this subject is welcome