线程的实现
1.1.1 创建和使用线程
用户可以通过声明一个变量类型System.Threading来建立一个新的线程。并且还提供了一个AddressOf操作和一个用户想运行的过程或方法。例如:
Dim mythread as New System.Threading.Thread(AddressOf MySub)
用户可以使用”Start”方法来开始一个线程,例如Thread.Start()。
下面我们就举个例子,来看看VB.NET的多线程是怎样创建和使用的。
Public Class AClass
Public Sub Method()
Dim i As Integer
For i = 1 To 100
Next
MsgBox("该程序启动了一个线程,他的值是:" + CStr(i))
End Sub
End Class
导入命名空间:
Imports System.Threading
在主窗体的Form1_load的事件中添加以下代码:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim obj As New AClass()
Dim th1 As Thread
th1 = New Thread(New ThreadStart(AddressOf obj.Method))
th1.Start()
End Sub
现在让我们来剖析一下上面的例子:
l 我们创建了我们自己的类AClass,并创建了两个方法:Method()
l 这个方法很简单,只有一个For循环,用MsgBox函数输出线程运行的结果。
l 类Thread可以在System.Threading名字空间里得到,它定义了处理线程的属性和方法。
l 在类Thread的构造器中,我们使用了类ThreadStart,类ThreadStart是一个代表,标志着当一个线程开始时就开始执行定义的方法。
l 为了执行定义的方法,我们实际调用的是线程的Start()方法。
l 除了上面的方法,线程类还有下面常用的方法:
Abort():停止线程的运行。 Suspend():暂停线程的运行。 Resume():继续线程的运行。 Sleep():停止线程一
用户可以通过声明一个变量类型System.Threading来建立一个新的线程。并且还提供了一个AddressOf操作和一个用户想运行的过程或方法。例如:
Dim mythread as New System.Threading.Thread(AddressOf MySub)
用户可以使用”Start”方法来开始一个线程,例如Thread.Start()。
下面我们就举个例子,来看看VB.NET的多线程是怎样创建和使用的。
Public Class AClass
Public Sub Method()
Dim i As Integer
For i = 1 To 100
Next
MsgBox("该程序启动了一个线程,他的值是:" + CStr(i))
End Sub
End Class
导入命名空间:
Imports System.Threading
在主窗体的Form1_load的事件中添加以下代码:
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim obj As New AClass()
Dim th1 As Thread
th1 = New Thread(New ThreadStart(AddressOf obj.Method))
th1.Start()
End Sub
现在让我们来剖析一下上面的例子:
l 我们创建了我们自己的类AClass,并创建了两个方法:Method()
l 这个方法很简单,只有一个For循环,用MsgBox函数输出线程运行的结果。
l 类Thread可以在System.Threading名字空间里得到,它定义了处理线程的属性和方法。
l 在类Thread的构造器中,我们使用了类ThreadStart,类ThreadStart是一个代表,标志着当一个线程开始时就开始执行定义的方法。
l 为了执行定义的方法,我们实际调用的是线程的Start()方法。
l 除了上面的方法,线程类还有下面常用的方法:
Abort():停止线程的运行。 Suspend():暂停线程的运行。 Resume():继续线程的运行。 Sleep():停止线程一