vb.net创建线程、多线程和破坏线程
来源:优易学  2011-12-10 20:57:51   【优易学:中国教育考试门户网】   资料下载   IT书店
  多线程
  VB语言的一大弱点就是缺乏编写自由线程(free-threaded)程序的能力。在.NET Framework中,所有语言共享CRL(Common Runtime Library,公共运行库),也就是说,你可以用VB.NET、C#或其它.NET语言编写同样的程序。
  System.Threading namespace定义了线程类。我们只需要引入System.Threading namespace,即可使用线程类。
  System.Threading.Thread类提供线程对象,可以使用Thread类创建或破坏线程。
  创建线程
  使用Thread类的实体创建一个新线程,然后用Thread.Start方法开始执行线程。线程构造器接受一个参数,该参数指明你要在线程中执行的procedure。在下例中,我想在oThread1(Thread类的一个实体)的第二线程中执行SecondThread过程:
  oThread1 = New Thread(AddressOf SecondThread)
  SecondThread procedure looks like below:
  Public Sub SecondThread()
  Dim i As Integer
  For i = 1 To 10
  Console.WriteLine(i.ToString())
  Next
  End Sub
  然后,调用Thread.Start()开始线程:
  oThread1.Start()
  下面的代码创建两个第二线程:
  Imports System
  Imports System.Threading
  Module Module1
  Public oThread1 As Thread
  Public oThread2 As Thread
  Sub Main()
  oThread1 = New Thread(AddressOf SecondThread)
   oThread2 = New Thread(AddressOf ThirdThread)
  oThread1.Start()
  oThread2.Start()
  End Sub
  Public Sub SecondThread()
  Dim i As Integer
  For i = 1 To 10
  Console.WriteLine(i.ToString())
  Next
  End Sub
  Public Sub ThirdThread()
  Dim i As Integer
  For i = 1 To 10
  Console.WriteLine("A" + i.ToString())
  Next
  End Sub
  End Module
  破坏线程
  调用Abort方法来破坏(中止)一个线程。在调用Abort之前,确保用IsAlive判断线程处于活动状态。
  If oThread1.IsAlive Then
  oThread1.Abort()
  End If
  暂停线程
  可以使用Sleep方法来暂停线程执行。Sleep方法接受一个以毫秒为单位的参数,指明线程应当暂停多长时间。
  下面的例子让线程暂停1秒钟:
  oThread2.Sleep(1000)
  你也可以使用Suspend和Resume方法来挂起和继续线程执行。
  设定线程优先级
  Thread类的Priority属性用于设定线程优先级。该属性可以设置为Normal,AboveNormal,BelowNormal,Highest和Lowest。如:
  oThread2.Priority = ThreadPriority.Highest
  线程与Apartment
  使用ApartmentState属性设置线程的apartment类型,该属性值可以为STA,MTA或是Unknown[2]:
  oThread.ApartmentState = ApartmentState.MTA
  MTS意味着可以使用多线程模式,而STA则只能是单线程执行。
  Public Enum ApartmentState
  {
  STA = 0,
  MTA = 1,
  Unknown = 2,
  }

责任编辑:小草

文章搜索:
 相关文章
热点资讯
资讯快报
热门课程培训