| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3960 人关注过本帖
标题:vb.net如何跨线程调用窗体控件
只看楼主 加入收藏
做自己就好
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-3-23
收藏
 问题点数:0 回复次数:2 
vb.net如何跨线程调用窗体控件
自己写了几行代码,在调试过程中说是线程间操作无效,查询之后发现是要先对线程进行委托,求教要如何进行改动。
代码如下:
 Private Sub Listen()
        Try
            tlTcpListen = New TcpListener(IPAddress.Parse("59.77.43.240"), iPort) '以定义的端口号来初始化TcpListener实例
            tlTcpListen.Start() '开始监听
            ToolStripStatusLabel1.Text = "正在监听..."
            skSocket = tlTcpListen.AcceptSocket() '通过TCP连接请求
            nsStream = tcClient.GetStream() '用以发送、接收数据的网络基础数据流
            srRead = New StreamReader(nsStream) '以得到的网路基础数据流来初始化StreamReader实例
            ToolStripStatusLabel1.Text = "已经建立TCP连接!"

            '循环侦听
            While blistener
                Dim sMessage As String = srRead.ReadLine() '从网络基础数据流中读取一行数据
                If (sMessage = "STOP") Then
                    tlTcpListen.Stop() '关闭侦听
                    nsStream.Close()
                    srRead.Close() '释放资源
                    ToolStripStatusLabel1.Text = "无连接!"
                    thThreadRead.Abort() '中止线程
                    Return
                Else
                    '判断是否为断开TCP连接控制码
                    Dim sTime As String = DateTime.Now.ToShortTimeString()
                    '获取接收数据的时间
                    ListBox1.Items.Add(sTime + " " + sMessage)
                End If
            End While
        Catch ex As System.Security.SecurityException
            MessageBox.Show("侦听失败!", "错误")
        End Try
    End Sub
搜索更多相关主题的帖子: 线程 Text 连接 数据 End 
2018-04-01 16:49
qqmushui
Rank: 1
等 级:新手上路
帖 子:4
专家分:0
注 册:2018-7-22
收藏
得分:0 
回复 楼主 做自己就好
  Public Sub New()
        ' 此调用是 Windows 窗体设计器所必需的。
        InitializeComponent()
        System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False
        ' 在 InitializeComponent() 调用之后添加任何初始化。
    End Sub


在这里添加上面这些代码就可以了。
2018-07-23 18:42
lgwd
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:89
专家分:67
注 册:2014-1-17
收藏
得分:0 
使用代理处理比较好,“System.Windows.Forms.Control.CheckForIllegalCrossThreadCalls = False”关闭了线程检查,不是编程推荐的方法。
2018-11-27 12:51
快速回复:vb.net如何跨线程调用窗体控件
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.016329 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved