Following up on my post about how UI threading sucks , and Julie's post about the subject (Julie or Julia? which is it?), I've decided to create some helper classes for working with UI threads. Meet UIThreadHandler and UIThreadManager.
Basically, they save you a lot of time by saving you the trouble of creating method stubs which call Invoke() on the form (which is what you need to do when getting events from a separate thread).
but here's a taste: This is all I need to do to call events from a separate thread - no need to create a method stub - just creating a new UIThreadHandler does the job:
EventThrower e = new EventThrower();
UIThreadHandler h = UIManager.CreateHandler(this,new EventHandler(this.UpdateProgressBar));
I think these classes could be expended much further, but for now they save me a bunch of time already. Have fun :)