vb.net跨线程调控件,跨线程访问控件 C#

VB跨线程调用WPF控件

使用委托和Invoke,下面是个VB的例子

成都创新互联专注于企业成都营销网站建设、网站重做改版、嘉鱼网站定制设计、自适应品牌网站建设、HTML5商城建设、集团公司官网建设、成都外贸网站建设、高端网站制作、响应式网页设计等建站业务,价格优惠性价比高,为嘉鱼等各大城市提供网站开发制作服务。

Delegate Sub SetTextCallback(ByVal pstrText As String)

Private Sub SbShowMessage(ByVal strMessage As String)

If Me.lbMessage.InvokeRequired Then

Dim d As New SetTextCallback(AddressOf SbShowMessage)

Me.Invoke(d, New Object() {strMessage})

Else

lbMessage.Items.Add(Now.ToString("yyyy/MM/dd HH:mm:ss") " " strMessage " ")

DoEvents()

lbMessage.SelectedIndex = lbMessage.Items.Count - 1

Dim intCounter As Integer

intCounter = lbMessage.Items.Count

If intCounter 1000 Then

For i As Integer = 1 To intCounter - 1000

lbMessage.Items.RemoveAt(0)

Next

End If

End If

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可以多线程控制同一个窗体及其控件吗

不可以,但是能够在主线程的基础上调用委托(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中怎么跨线程调用控件

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


新闻名称:vb.net跨线程调控件,跨线程访问控件 C#
文章链接:http://pwwzsj.com/article/hshooi.html