vb.net委托和线程 vb 线程

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多线程问题多线程是用于处理复杂项目的
打个比方
你的主程序线程A中有个循环,由于代码是一行行走的 , 所以循环结束前下面的代码无法运行 , 而此时主界面的反应就类似卡死的样子,你点击按钮也没有反应 , 因为主线程在忙着循环呢 , 所以对按钮的事件代码要等待了,如果要避免这种情况,就要用到多线程,另开一个新线程专门用来执行循环代码,主界面就不会卡死了,只要在循环结束后将结果传回主线程调用就可以了,再复杂点要涉及到委托,控制了
按你的要求其实你的代码用不到多线程 , 只要把sleep放到两段代码中间就可以了 。
新线程结束用thread.abort()
关于VB.NET中多线程和委托界面假死无响应的问题并没有看出什么地方可能导致程序假死,这排版也太乱了.不妨调试一下程序,当出现你说的"假死"后暂停一下程序,看看线程都卡在哪里.
另外,从设计上来看,你这里并不需要多线程操作.
VB.NET多线程程序问题在多线程中vb.net委托和线程你需要定义委托来修改控件属性
比如vb.net委托和线程你修改Textbox属性vb.net委托和线程,则vb.net委托和线程:
Delegate Sub dl_ShowTextbox(ByVal iStr As String)
Public Sub ShowTextbox(ByVal iStr As String)
If Textbox.IsDisposed Then
Return
End If
If Textbox.InvokeRequired = True Then
Dim pInvoke As New dl_ShowTextbox(AddressOf ShowTextbox)
Me.Invoke(pInvoke, New Object() {iStr})
Else
Textbox.Text = iStr
End If
End Sub
在多线程中调用
ShowTextbox( "要显示vb.net委托和线程的内容" )
关于vb.net 多线程和委托问题Delegate Sub MySubDelegate(form As Form1)
Class class1
Sub Sub1(form As Form1)
form.Timer1.Enabled = True
form.Label1.Visible = True
【vb.net委托和线程 vb 线程】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中的多线程和委托是什么关系? 能不能给我一个通俗易懂的范例,谢谢委托,Delegate
就是让你处于这个线程里时 , 委托另一个线程去执行一些动作
我简单举一个写richtextbox的例子:
////////////////////////////////////////////
'创建一个名为 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 , 就不会产生错误了 。不然,直接垮线程写richtextbox , 可能会出现和UI线程的冲突 。
关于vb.net委托和线程和vb 线程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息 , 记得收藏关注本站 。

    推荐阅读