读书人

帮我看看有关问题出在哪

发布时间: 2011-12-22 23:36:25 作者: rapoo

帮我看看问题出在哪
//实例化
WebClass web = new WebClass();

//绑定事件
web.SendMessage += new WebClass.SendMessageHandler(web_SendMessage);

Thread th = new Thread(web.Run);
th.Start();

//事件
void web_SendMessage(object sender, SendMessageArgs e)
{
listView1.Items[e.SiteName].SubItems[e.ColName].Text = e.Message;
}

每当这个Sendmessage事件发生时 就会弹出错误
Cross-thread operation not valid: Control 'listView1 ' accessed from a thread other than the thread it was created on. 不能跨线程调用 ...
大家帮帮我 给我个解决方法呀 我的目的是想根据事件传过来的参数更新listview控件子项的文本。。。用的是vs2005



[解决办法]
void web_SendMessage(object sender, SendMessageArgs e)
{
if(listView1.invokerequired)
{
SendMessageHandler d=new SendMessageHandler(web_SendMessage);
listView1.begininvoke(d,new object[]{sender, e});
}
else
{
listView1.Items[e.SiteName].SubItems[e.ColName].Text = e.Message;
}
}


*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html

读书人网 >C#

热点推荐