多线程使应用程序具有在同一时刻处理多个事务的能力。使用多线程,可以一个线程运行用户界面,同时另一个线程在后台做复杂的计算或处理。Microsoft Visual Basic .NET支持多线程,因此,我们可以轻易的实现这种能力。不幸的是,多线程也有它不利的一面。任何时候某个应用程序使用的线程多于一个时,如果多个线程在同一时刻试图使用相同的数据或资源,可能出现麻烦。这种情况一旦出现,程序将变得非常复杂并且难以调试。更糟的是多线程代码经常在最初开发时运行良好,在形成产品时却往往失败,原因在于有未被发现的多个线程与相同的数据或资源相互作用的情况。这使得多线程编程非常危险。
由于设计和调试多线程应用程序的困难性,微软提出了单线程单元(STA)的概念。Visual Basic 6代码通常在STA中运行,因此代码只需要考虑一个线程。这完全的避免了共享数据和资源的问题,但也意味着我们如果不使用其它技术就无法实现多线程。在.NET中没有类似STA的东西。所有的.NET代码在AppDomain中运行,而AppDomain允许使用多线程。这意味着Visual Basic .NET代码也在AppDomain中运行,因此我们从多线程中受益。很明显,任何时候我们设计多线程应用程序,都必须小心编写代码以避免线程之间的冲突。最简单的避免线程冲突的的方法是使线程之间永远不与相同的数据或资源交互。但这不一定可行,对任何多线程程序来说,避免或最小化共享数据或资源应作为一个目标。
这不但简化了编码和调试,而且增强了性能。为了解决线程间冲突的问题,我们必须使用同步技术,但同步技术常常引起某个线程阻塞或临时停顿,直到另一个线程完成某个动作。阻塞一个线程意味着让它空闲着,没有工作,降低了性能。
Visual Basic.NET 是从 Visual Basic 语言演变而来的,是一种为高效地生成类型安全和面向对象的应用程序而设计的语言。Visual Basic 允许开发人员开发面向 Windows、Web 和移动设备的程序。与所有面向 Microsoft .NET Framework 的语言一样,使用 Visual Basic 编写的程序都具有安全性和语言互操作性方面的优点。