码迷,mamicode.com
首页 > Windows程序 > 详细

C# Cross thread operation detected.

时间:2015-07-30 10:53:39      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:

最近改别人的代码调试时报这个错,调试了蛮久没发现什么问题,百度了下也没发现相应的解决方案。

Thread th = new Thread(new ThreadStart(() =>
{
table.Rows.Clear();
checkSaveData();
BindDataGrid(table);
}));
th.IsBackground = true;
th.Start();

后来经过别人解释才想到大概是什么原因。报错提示的大致意思就是在线程里面操作窗体的控件,当时没发现什么代码在什么地方调用了窗体的控件,

问题是table.Rows.Clear();这行代码,由于窗体中取数时把gridControl的绑定数据源设为table,所以当在线程里把table的所有行Clear掉时,触发了

gridControl的数据变化的事件,等于间接操作了gridControl,所以就报了这个错误,只要把这行代码写到线程的上一行就行了,效果也一样。

C# Cross thread operation detected.

标签:

原文地址:http://www.cnblogs.com/yunyujia/p/4688417.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!