子线程操作主线程控件,我使用的委托和Invoker()方法,确实能实现功能。
但是子线程在长时间运行的时候,主界面无法响应。因为这种方法其实是“注入”到了主线程,子线程不返回,主线程就无法响应。这就失去了多线程的意义了。还一种思路是,如果无法解决上面的问题,能不能让子线程运行返回的值,让主线程去使用。希望能提供个实例。实际问题就是,我界面上有2个TreeView,我希望它们有各自的线程去读取节点,并添加上去
但是子线程在长时间运行的时候,主界面无法响应。因为这种方法其实是“注入”到了主线程,子线程不返回,主线程就无法响应。这就失去了多线程的意义了。还一种思路是,如果无法解决上面的问题,能不能让子线程运行返回的值,让主线程去使用。希望能提供个实例。实际问题就是,我界面上有2个TreeView,我希望它们有各自的线程去读取节点,并添加上去
解决方案 »
- 一个检测字符串是否存在正则表达式
- 求c#给现有图片绘制光照效果的代码
- 用了dialogresult,messagebox.show之后如何不关闭窗体?
- C# 客户端按下小键盘0-9之间的数字键时,如何实现对应的语言提醒呢??
- 关于PDA程序
- 关于C/S架构的程序
- C#收发短信
- Hashtable静态成员怎么实例化?在Java中很方便,C#中有对应的方法吗?
- 谁能把下面的VB代码翻译为C#
- 在c#中文BATE2版中,将Toolbar中的某一ToolbarButton的Enable从true变为false,Toolbar就会刷新一下,是否可以避免???
- 如何 检测有没有小数 如果 有小数整数加一
- c# AxWindowsMediaPlayer 透明度
消息线程和工作线程本来就是分开的,各干各的事,
如果你非要让工作线程来维护控件,那是不可能的,你看到的那个Invoker其实应该是类似与SendMessage这样的函数,发个消息到消息线程,让它来维护控件
你可真够扯淡的。
用timer,程序还不照样卡在那里。跟我单线程直接进行有什么区别,
还多此一举
我也遇到过同样的问题
但是TIMER的同学是不是有点呆啊?鄙人不太专业,但是觉得用TIMER的话,似乎有很大差异
跟楼主学习一下
由于数据比较多,获取节点对象就比较慢。我的思路也就2种
1:让子线程去获取节点,主线程添加 问题:如何让主线程使用子线程获得的节点对象
2:子线程获取,并添加 问题:子线程"注入"到主线程不返回,主线程无法响应