[VB.NET]多线程——创建新线程

创建线程最直接的方法是创建新的线程类实例,并使用 AddressOf 语句为要运行的过程传递委托。例如,以下代码将名为 SoMetask 的子过程作为单独的线程运行。

Dim Thread1 As New System.Threading.Thread(AddressOf SoMetask)
Thread1.Start
' 此处的代码立即运行。
以上所述就是创建和启动线程的方法。在线程 Start 方法调用之后的任何代码将立即运行,而无需等待前一个线程运行结束。

下表列出了用于控制各个线程的一些方法

方法 操作
Start 使线程开始运行。
Sleep 使线程暂停一段指定的时间。
Suspend 使线程在到达安全点后暂停。
Abort 使线程在到达安全点后停止。
Resume 重新启动挂起的线程。
Join 使当前线程等待其他线程运行结束。如果使用超时值,且线程在分配的时间内结束,此方法将返回 True。

多数方法都无需再加以说明,但“安全点”可能是个新的概念。安全点是指代码中的某些位置,在这些位置公共语言运行时可以安全地执行自动垃圾回收,即释放未使用的变量并回收内存。调用线程的 Abort 或 Suspend 方法时,公共语言运行时将分析代码并确定线程停止运行的适当位置。

线程还包含许多有用的属性,如下表所示:

属性 值 IsAlive 如果线程处于活动状态,则包含值 True。 IsBackground 获取或设置布尔值,指示线程是否是后台线程或是否应该是后台线程。后台线程与前台线程类似,但后台线程并不阻止进程的终止。当进程的所有前台线程都终止后,公共语言运行时将对仍处于活动状态的后台线程调用 Abort 方法,以结束该进程。 Name 获取或设置线程的名称。常用于在调试时查找各个线程。 Priority 获取或设置操作系统用来确定线程优先级安排的值。 ApartmentState 获取或设置用于特定线程的线程模型。当线程调用非托管的代码时,线程模型将非常重要。 ThreadState 包含说明线程状态的值。

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As Dat...