使用C# 2.0,怎么使用多线程安全的调用非当前线程创建的控件,我看了MSDN中的方法但没看太明白,在调用时会出现异常.
//我的调用方法如下
internal delegate void ReloadDelegate();
internal void Reload()
{
//执行代码,操作控件
}
internal void ThreadM()
{
//在线程中调用访问操作方法
this.DataGridView.Invoke(new ReloadDelegate(Reload));
}
Thread thread = new Thread(new ThreadStart(ThreadM));
thread.Start();我是这样操作的,但有时会出现异常,不知道是什么地方出错.
//我的调用方法如下
internal delegate void ReloadDelegate();
internal void Reload()
{
//执行代码,操作控件
}
internal void ThreadM()
{
//在线程中调用访问操作方法
this.DataGridView.Invoke(new ReloadDelegate(Reload));
}
Thread thread = new Thread(new ThreadStart(ThreadM));
thread.Start();我是这样操作的,但有时会出现异常,不知道是什么地方出错.
解决方案 »
- textbox richtextbox是怎么实现的?
- 菜鸟求教 Form模拟软键盘
- 我把flash放到窗体程序后,安装部署后。文件夹里还是有flash文件 能否不让flash文件显示出来!??变成dll 什么的类型
- 急!!在线等,同一条SQL在程序里运行查出一条数据,在数据库里查询可以查出多条,为什么呢?
- Socket 关闭时出现 错误:"由于套接字没有连接并且(当使用一个 sendto 调用发送数据报套接字时)没有提供地址,发送或接收数据的请求没有被接受。"
- 怎么根据一个DataTable,去更新数据库?
- 有人做yahoo通的C#开发吗?
- 求助动态加载图片时闪烁
- 关于帮助文挡
- 利用反射调用WebService时提示“参数计数不匹配。”
- 字符串处理遇到的难题---C#中如何对分词后的文档的字符进行统计
- 跪求...如何实现类似于SqlServer中视图设计器的动态连接线.....在线等
另外你上面提到的,其实对应是postmessage,这个方法友好多了,他只是告诉control你下一步要做什么,不必马上响应..net说到底都是mfc做出来的,mfc是win32的封装.
System.Windows.Forms.Form.CheckForIllegalCrossThreadCalls = false;
就和2003一样了
不想使用这种方法,CheckForIllegalCrossThreadCalls = false; MSDN上说这样会出现问题,
主线程要负任显示UI,而使用一个线程来对数据进行查询并将数据绑定到控件上。//执行代码,操作控件,绑定数据
this.DataGridView.DataSource = this.dataView;