Multithreading in Visual Basic .NET is one of .NET's many powerful features. Unfortunately, this one aspect has a huge potential for misuse. I encourage you to use multithreading in your VB .NET applications when the perceived or real payoff exceeds the potential for headaches . Use multithreading sparingly.
As you learned in this chapter, you have many choices when its comes to synchronous, asynchronous, and multithreaded programming in VB .NET. Consider using the Timer control for short, lightweight synchronous tasks . Use asynchronous calls for lightweight processing, and use the ThreadPool class when you need threading. Of course, you can also use the Thread class. If you do, remember that you can reduce the number of problems with multithreading by keeping the number of interactions between threads to a minimum and using synchronization when you must modify variables across threads.