资讯

精准传达 • 有效沟通

从品牌网站建设到网络营销策划,从策略到执行的一站式服务

vb.net中多线程委托,net多线程与委托

vb.net环境下,如何将递归操作和多线程完美结合

.net 为了安全,默认不允许跨线程访问操作控件。只能谁创建了控件,谁操作。 这个textbox只能从主线程访问。 解决方案一般有两个 1. 使用委托机制。委托创建线程去访问 2. 设置Me.CheckForIllegalCrossThreadCalls = False 表示不检测跨线程错误

创新互联建站专业为企业提供雄县网站建设、雄县做网站、雄县网站设计、雄县网站制作等企业网站建设、网页设计与制作、雄县企业网站模板建站服务,十载雄县做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

关于VB.NET中多线程和委托界面假死无响应的问题

并没有看出什么地方可能导致程序假死,这排版也太乱了.不妨调试一下程序,当出现你说的"假死"后暂停一下程序,看看线程都卡在哪里.

另外,从设计上来看,你这里并不需要多线程操作.

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中的多线程和委托是什么关系? 能不能给我一个通俗易懂的范例,谢谢

委托,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 多线程和委托问题

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中多线程委托,net多线程与委托
网站地址:http://cdkjz.cn/article/dseejdc.html
多年建站经验

多一份参考,总有益处

联系快上网,免费获得专属《策划方案》及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:400-028-6601 / 大客户专线   成都:13518219792   座机:028-86922220