vb.net多线程委托 vb多线程实现

关于VB.NET中多线程和委托界面假死无响应的问题并没有看出什么地方可能导致程序假死,这排版也太乱了.不妨调试一下程序,当出现你说的"假死"后暂停一下程序,看看线程都卡在哪里.
另外,从设计上来看,你这里并不需要多线程操作.
VB.NET中的多线程和委托是什么关系? 能不能给我一个通俗易懂的范例,谢谢委托,Delegate
就是让你处于这个线程里时,委托另一个线程去执行一些动作
我简单举一个写richtextbox的例子vb.net多线程委托:
////////////////////////////////////////////
'创建一个名为 MySubDelegate 的委托 。
Delegate Sub MySubDelegate(ByVal txt As String)
'写信息到富文本主窗口
Private Sub txtW(ByVal txt As String)
Dim msgd As New MySubDelegate(AddressOf Me.txtW1)
Dim arg(0) As Object
arg(0) = txt
Me.Invoke(msgd, arg)
End Sub
'委托指向
Private Sub txtW1(ByVal txt As String)
Me.RichTextBox1.AppendText(txt)
End Sub
/////////////////////
这样,你在多线程应用时 , 在其他线程里用txtW(str)来写richtextbox,就不会产生错误vb.net多线程委托了 。不然,直接垮线程写richtextbox , 可能会出现和UI线程的冲突 。
VB.net可以多线程控制同一个窗体及其控件吗不可以,但是能够在主线程的基础上调用委托(Invoke) 。(主线程会被占用)
例子:
Dim thr As Threading.Thread
Public Delegate Sub VoidDelegate()
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
thr = New Threading.Thread(AddressOf Where)
thr.Start()
End Sub
Public Sub Where()
Me.BeginInvoke(New VoidDelegate(AddressOf WhereThr))
End Sub
Public Sub WhereThr()
Me.TextBox.text="0123456789"
End Sub
(Invoke)这种情况下,主线程被占用,所有由主线程执行程序,都将被(wherethr函数执行结束)后执行 。
关于vb.net 多线程和委托问题【vb.net多线程委托 vb多线程实现】Delegate Sub MySubDelegate(form As Form1)
Class class1
Sub Sub1(form As Form1)
form.Timer1.Enabled = True
form.Label1.Visible = True
MsgBox("kkk")
End Sub
End Class
Private Sub DelegateTest()
Dim c1 As New class1
Dim msd As MySubDelegate = AddressOf c1.Sub1
Me.Invoke(msd,Me)
End Sub
vb.net多线程委托的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于vb多线程实现、vb.net多线程委托的信息别忘了在本站进行查找喔 。

    推荐阅读