专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »VB教程 » vb.net多线程:vb.net创建线程、多线程和破坏线程 »正文

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

来源: 发布时间:星期四, 2009年1月15日 浏览:111次 评论:0
  多线程

  VB语言大弱点就是缺乏编写自由线程(free-threaded)能力在.NET Framework中所有语言共享CRL(Common Runtime Library公共运行库)也就是说你可以用VB.NET、C#或其它.NET语言编写同样

  .Threading 定义了线程类我们只需要引入.Threading 即可使用线程类

  .Threading.Thread类提供线程对象可以使用Thread类创建或破坏线程

  创建线程

  使用Thread类实体创建个新线程然后用Thread.Start思路方法开始执行线程线程构造器接受个参数该参数指明你要在线程中执行procedure在下例中我想在oThread1(Thread类个实体)第 2线程中执行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.)
  Next
End Sub


  然后Thread.Start开始线程:

  oThread1.Start

  下面代码创建两个第 2线程:

Imports
Imports .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.)
    Next
  End Sub
  Public Sub ThirdThread
    Dim i As Integer
    For i = 1 To 10
      Console.WriteLine("A" + i.)
    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属性用于设定线程优先级该属性可以设置为NormalAboveNormalBelowNormalHighest和Lowest如:

  oThread2.Priority = ThreadPriority.Highest

  线程和Apartment

  使用ApartmentState属性设置线程apartment类型该属性值可以为STAMTA或是Unknown[2]:

  oThread.ApartmentState = ApartmentState.MTA

  MTS意味着可以使用多线程模式而STA则只能是单线程执行

Public Enum ApartmentState
{
STA = 0,
MTA = 1,
Unknown = 2,
}


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: