vb.net有队列结构吗 vbnet implements( 四 )


创建线程使用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.MTAMTS意味着可以使用多线程模式,而STA则只能是单线程执行 。
Public Enum ApartmentState
{
STA = 0,
MTA = 1,
Unknown = 2,
}
1.8 结构化异常处理异常处理也被称之为错误处理 。作为VB程序员,你一定对On Error Goto和On Error Resume Next这些VB6.0错误处理语句耳熟能详 。这种类型的错误处理被称为非结构化异常处理(Unstructured Exception Handling) 。而在VB.NET中,Microsoft推出了结构化异常处理机制 。VB.NET支持类似C++的TryCatch..Finally控制 。Try..Catch..Finally结构如下: Try
' 可能导致异常的代码
Catch
' 当异常发生时处理异常的代码
Finally
' 清理现场
End Try
Try语句块用以抛出异常 。如果异常发生 , 在Catch语句块中处理 。Finally语句块是可选的,在需要释放资源时特别有用 。
1.9 VB6.0与VB.NET的不同之处除了上面谈到的语言进化,还有一些语法上的变化 。所有这些语言和语法的变化在MSDN中均可查到,本文只作简单介绍 。
数据类型(Data Type)的改变VB.NET中有些数据类型得到改进 。下面是变化对照表 。
数据类型 VB6.0 VB.NET
Integer 16 bit size 32 bit size
Long 32 bit size 64 bit size
Currency 用于存储大浮点数 被decimal替代 , 支持更高精度
Variant 可以存储任意类型数据 被Object类型替代,也可以存储任意类型数据 , 但结果更好
Date Date类型被存储为double 引入DateTime类型,用于存储不同格式的日期
在VB.NET中,Short数据类型是16 bit的 。Short,Integer和Long都等同于CLR的System.Int16、System.Int32和System.Int64类型 。变量声明的变化在VB6.0中,变量声明有许多限制 。其中之一就是不能同行声明多个变量 。如果一定要在一行中声明多个变量,就一定得指明每个变量的类型,否则将被默认为Variant类型 。

推荐阅读