网站建设资讯

NEWS

网站建设资讯

vb.net线程控件 vbnet main

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

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

站在用户的角度思考问题,与客户深入沟通,找到定远网站设计与定远网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:做网站、网站设计、企业官网、英文网站、手机端网站、网站推广、域名与空间、网站空间、企业邮箱。业务覆盖定远地区。

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 多线程 访问界面控件

建议你使用BackGroundWorker控件。将代码写入控件的事件中,使用它的Start方法就可以开始工作了。是与主程序同时进行的。

vb.net如何跨线程访问控件

用 Control.Invoke 方法

比如

label1.Invoke(delegate(){ label1.Text = "New Text"; });

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 Timer控件与多线程问题

Timer 是在 主线程里执行的,Thread 是在自己的线程中执行的,多核心的CPU使用线程能提高处理能力。回到你的问题,主线程如果卡死,timer就会失去响应,很正常的。请使用System.Timers.Timer类吧。请参考一下:


网站栏目:vb.net线程控件 vbnet main
文章链接:http://njwzjz.com/article/doddsog.html