vb.net跨线程委托 c# 委托跨线程访问控件

vb.net treeview 跨线程访问

Dim a() As String

创新互联公司主营泗阳网站建设的网络公司,主营网站建设方案,成都App制作,泗阳h5微信小程序开发搭建,泗阳网站营销推广欢迎泗阳等地区企业咨询

For Each Node1 As TreeNode In TreeView1.Nodes

If Node1.Text = "SiteStructure" Then '如果根节点=SiteStructure 则Node1.Name改为Node1.Text

Dim cp As TreeNode = TreeView1.Nodes(0) '根节点

'先要给a赋值,举个例子吧,你自己根据情况变通一下

ReDim a(cp.Nodes.Count)

For i As Integer = 0 To a.Length - 1

a(i) = TreeView1.Nodes(i).Text

Next

If a.Length = 1 Then

cp.Nodes("root").Nodes.Add(a(0))

Application.DoEvents()

Else

For k1 As Integer = 0 To a.Length - 1

Dim tc As New TreeNode(a(k1))

cp.Nodes.Add(tc)

Application.DoEvents()

cp = tc

Next

End If

End If

Next

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跨线程操作控件

最简单的方法是

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

Control.CheckForIllegalCrossThreadCalls = False'加入这句代码就可以在别的线程访问窗体控件了

End Sub

请教VB.net中怎么跨线程调用控件

建立委托。 Me.Invoke——同步委托 或者 Me.BeginInvoke——异步委托 例:Me.Invoke(Sub Textbox.Text="这是一个示例" End Sub)


当前文章:vb.net跨线程委托 c# 委托跨线程访问控件
网站网址:http://hbruida.cn/article/ddodepi.html