当前位置:编程学习 > C#/ASP.NET >>

对 Windows 窗体控件进行线程安全调用

--------------------编程问答-------------------- 跨线程访问窗体控件是不安全的,如果非要访问,建议用backgroundworker部件来访问,比直接操作thread要方便 --------------------编程问答-------------------- Me.Label1.Text = "This text was set unsafely."
=〉
Me.Invoke(New Action(Sub()
        Me.Label1.Text = "This text was set unsafely."
    End Sub)) --------------------编程问答--------------------  就是委托的用法

借用另外一个帖子的内容进行介绍


Delegate Sub SetTextCallback(ByVal InputString As String) '定义一个委托
    Private Sub ShowString(ByVal comData As String) 定义一个过程
        Label1.Text &= comData
    End Sub

 Private Sub SerialPort1_DataReceived(ByVal sender As Object, ByVal e As System.IO.Ports.SerialDataReceivedEventArgs) Handles SerialPort1.DataReceived 
        Dim inData As String = SerialPort1.ReadLine
        Dim d As New SetTextCallback(AddressOf ShowString) '新建一个委托实例,把委托内容指向写文本的那个过程
        Invoke(d, inData) '委托!(串口事件属于另一个线程,所以调用窗体控件需要委托来做)
    End Sub
补充:.NET技术 ,  VB.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,