重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Dim a() As String
我们拥有10多年网页设计和网站建设经验,从网站策划到网站制作,我们的网页设计师为您提供的解决方案。为企业提供成都网站制作、成都网站设计、微信开发、微信小程序定制开发、手机网站制作、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
用 Control.Invoke 方法
比如
label1.Invoke(delegate(){ label1.Text = "New Text"; });
Sub Main()
Dim thr As Thread
For Pi As Integer=0 To 4 //启用5线程
MulParams =Pi vbTab sFile vbTab dFile vbTab 1 vbTab DelN vbTab cr vbTab cg vbTab cb vbTab IndexI
GlobalParamas(pi)=MulParams .Split(vbTab)
thr=New Thread(AddressOf MyMulThreadCaller)
thr.Start() //启动多线程进程
Application.DoEvents
Next
End Sub
多线程是用于处理复杂项目的
打个比方
你的主程序线程A中有个循环,由于代码是一行行走的,所以循环结束前下面的代码无法运行,而此时主界面的反应就类似卡死的样子,你点击按钮也没有反应,因为主线程在忙着循环呢,所以对按钮的事件代码要等待了,如果要避免这种情况,就要用到多线程,另开一个新线程专门用来执行循环代码,主界面就不会卡死了,只要在循环结束后将结果传回主线程调用就可以了,再复杂点要涉及到委托,控制了
按你的要求其实你的代码用不到多线程,只要把sleep放到两段代码中间就可以了。
新线程结束用thread.abort()
建立委托。 Me.Invoke——同步委托 或者 Me.BeginInvoke——异步委托 例:Me.Invoke(Sub Textbox.Text="这是一个示例" End Sub)
最简单的方法是
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Control.CheckForIllegalCrossThreadCalls = False'加入这句代码就可以在别的线程访问窗体控件了
End Sub