vb.net 线程处理画面

Private isStop As Boolean = False


Dim th As Thread
Public Sub TestThread()
If th IsNot Nothing AndAlso th.IsAlive Then
Return
End If
th = New Thread(AddressOf MyThreadProc)
'启动线程
th.Start()
End Sub


Dim aa As Integer = 1
Public Sub MyThreadProc()
'更新ui资源例子
'实际更新界面
While Not isStop
Me.Invoke(New VoidDelegate(AddressOf UpdateText),"Modified by thread " + aa.ToString)
Application.DoEvents()
aa = aa + 1
System.Threading.Thread.Sleep(5000)
End While
End Sub


'定义委托
Public Delegate Sub VoidDelegate(ByVal text As String)
'定义方法
Public Sub UpdateText(ByVal text As String)
Label1.Text = text '"Modified by thread " + aa.ToString
End Sub


‘启动线程

Private Sub Button3_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button3.Click
TestThread()
End Sub


‘终止线程

Private Sub Button4_Click(ByVal sender As System.Object,ByVal e As System.EventArgs) Handles Button4.Click ' isStop = True If th IsNot Nothing AndAlso th.IsAlive Then th.Abort() Me.Invoke(New VoidDelegate(AddressOf UpdateText),"Modified by thread over") End If End Sub

相关文章

Format[$] ( expr [ , fmt ] ) format 返回变体型 format$ 强制返回为文本 --------------------------...
VB6或者ASP 格式化时间为 MM/dd/yyyy 格式,竟然没有好的办法, Format 或者FormatDateTime 竟然结果和...
在项目中添加如下代码:新建窗口来显示异常信息。 Namespace My ‘全局错误处理,新的解决方案直接...
转了这一篇文章,原来一直想用C#做k3的插件开发,vb没有C#用的爽呀,这篇文章写与2011年,看来我以前没...
Sub 分列() ‘以空格为分隔符,连续空格只算1个。对所选中的单元格进行处理 Dim m As Range, t...
  窗体代码 1 Private Sub Text1_OLEDragDrop(Data As DataObject, Effect As Long, Button As Integ...