vb.net创建线程、多线程和破坏线程

来源:计算机等级考试    发布时间:2012-08-29    计算机等级考试视频    评论

  多线程
  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,
  }
2009年NCRE考试有新变化
2009年全国计算机等级考试大纲
2009年上半年全国计算机等级考试报名信息汇总

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答