While working on .Net download library, I realized I still didn’t know how to fire events from the background threads onto the main thread (meaning the thread that started the download by calling Start). I posted query on how to do this in vb.net on several forums, and got some helpful responses at MSDN. Apparently, the thing I’ve been searching for is called the Event-based Asynchronous Pattern, which is a general pattern for asynchronous operation’s with events. I have done some familiarization with it by doing the entire walk-through, and I also started implementing it into the Download class. I’ll probably commit my current code this weekend, hopefully with working cross thread events 🙂