| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1814 人关注过本帖
标题:[求助]线程间操作无效?
取消只看楼主 加入收藏
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
结帖率:33.33%
收藏
 问题点数:0 回复次数:4 
[求助]线程间操作无效?

这是什么意思?
我在Form里有一个LIstBox
然后,
我开了一个线程(Listen())用来监听端口
线程Listen() 里面已经成功连接后需要向ListBox写入东西,则出现下面的错误:

图片附件: 游客没有浏览图片的权限,请 登录注册


[此贴子已经被作者于2007-1-25 13:34:29编辑过]

搜索更多相关主题的帖子: 线程 
2007-01-25 13:34
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 
也就是说ListBox是原来线程创建的,则新的线程是不能访问它的。

那么该如何访问这个控件啊?(新线程是不断监听端口,连接成功后必须要访问ListBox啊!)

2007-01-25 13:39
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 

哦,也就是说对 ListBox1的调用必须检查它的InvokeRequired是否为True,如果为True的话就得更改Invoke?

delegate void SetTextCallback(string text);

private void SetText(string text)
{
if (this.listBox1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(SetText);
this.Invoke(d, new object[] { text });
}
else
{
this.listBox1.Items.Add(text);
}
}


好像不很方便啊!
SWC:怎么关闭检查?怎么设置?不会弄
public static bool CheckForIllegalCrossThreadCalls { get; set; }


2007-01-27 12:55
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 
呵呵,知道了
Control.CheckForIllegalCrossThreadCalls = false;

2007-01-27 13:05
jockey
Rank: 3Rank: 3
等 级:论坛游民
威 望:8
帖 子:977
专家分:52
注 册:2005-12-4
收藏
得分:0 
多谢了!

2007-01-28 09:18
快速回复:[求助]线程间操作无效?
数据加载中...
 
   



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

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