using (Region invReg = new Region(m_ShowRegion))
{
//this.Invoke(new Action<Region>(this.Invalidate), invReg);
this.Invalidate(invReg);
}上述代码由不同的线程调用,如果执行this.Invalidate(invReg);就会报错“不是在所创的线程中....”。
如果用this.Invoke(new Action<Region>(this.Invalidate), invReg);就会连界面都不显示。
这个程序是由软件从不同串口同时采集数据,并刷新绘图界面。所以用到了多线程刷新界面。请问大家该如何多线程刷新界面?
解决方案 »
- 正则表达式分组
- C#如何实现 软件的试用天数
- C#桌面程序,为什么装了.net环境还不行?
- ASP.NET的全局变量怎么是这样的?怎么像Application可以是所有人访问到的?天啊,谁来救救我?!!ASP.NET!!
- 请问普通控件如何设置构造函数?
- 如何通过程序代码分离EXE和DLL,不借助app.config
- 如何隐藏DataGrid中的一列?
- 关于用模式窗口关闭mdi下子窗体产生的问题?
- 各位,请问vs.net 2003简体中文版,到底今年几月份发布的为最后正式版?
- 关于弹出对话框的问题,怎样情况下,可以在IE5下,关闭它,不会新建窗口
- Thread.Timer-outof memoryexception
- ListBox控件绑定
---------------
?
invalidate也是发送wm_paint
this.Invoke(new Action<Region>(this.Invalidate), invReg);
用这个可行。