在VB.NET中如何使用多线程详细知识

VB.NET编程语言的推出,帮助开发人员极大的提高了开发效率。在这里我们会为大家介绍一下VB.NET多线程的使用方法,从而了解这门语言给我们带来的方便性,及特殊的编程方式,方便大家理解。
   
    很长时间以来,开发人员一直要求微软为VB增加更多的线程功能--这一点在VB.NET中终于实现了。VB6不支持创建多线程的EXE、DLL以及OCX.但这种措词容易引起误解,这是因为VB6支持执行多个单线程的单元。一个单元实际上是代码执行的场所而且单元的边界限制了外部代码对单元内部的访问。
   
    VB.NET支持创建*线程的应用程序。这意味着多个线程可以访问同一个共享的数据集。本文将带领你了解多线程的基本内容。
   
    虽然VB支持多个单线程的单元,但并不支持允许多个线程在同一个数据集上运行的*线程模型。在很多情况下,产生一个运行后台处理程序的新线程会提高应用程序的可用性。一种很显然的情况就是当执行一个可能使窗体看起来停止响应的长过程时,你一定会想在窗体上放置一个取消按钮。
   
    解决方法
   
    由于VB.NET使用公共语言运行时(Common Language Runtime),它增强了很多新的特性,其中之一便是创建*线程应用程序的能力。
   
    在VB.NET中,开始使利用VB.NET多线程进行工作是很容易的。稍后我们会探究一些精妙之处,我们先创建一个简单的窗体,它生成一个执行后台处理程序的新线程。我们需要做的第一件事是将要在新线程上运行的后台处理程序。下面的代码执行一个相当长的运行过程--一个无限循环:
   
    Private Sub BackgroundProcess()
   
    Dim i As Integer = 1 Do While True
   
    ListBox1.Items.Add("Iterations: " + i)
   
    i += 1
   
    Loop
   
    End Sub
   
    这段代码无限地循环并在每次循环中向窗体上的列表框中增加一个条目。如果你对VB.NET不熟悉的话,便会发现这段代码中有一些在VB6中无法完成的事:
   
    在声明变量时对其赋值 Dim i As Integer=1
   
    使用+=操作符 i+=1代替了i=i+1
   
    Call关键字已经被去除了
   
    一旦我们有了一个工作过程,便需要将这段代码指派给一个新的VB.NET多线程并开始它的执行。完成这项工作,我们需要使用Thread对象,它是。NET框架类中System.Threading命名空间的一部分。当实例化了一个新的Thread类时,我们向其传递一个引用,这个引用指向我们想要在Thread类的构造函数中执行的代码块。下面的代码创建一个新的Thread对象并将指向BackgroundProcess的引用传递给它:
   
    Dim t As Thread
   
    t = New Thread(AddressOf Me.BackgroundProcess)
   
    t.Start()
   
    AddressOf操作符为BackgroundProcess方法创建了一个委派对象。委派在VB.NET中是一种类型安全的、面向对象的函数指针。在VB.NET多线程被实例化之后,你可以通过调用线程的Start()方法开始执行代码