社区
C#
帖子详情
请问子线程如何通知主线程执行方法?
nicholaskj
2010-10-06 03:44:56
该贴中http://topic.csdn.net/u/20090227/15/5be6748d-c496-42cf-86a9-f40cb80bcfbb.html
提到子线程通知主线程做出响应,用到的是Form的Invoke方法
但是,我的主线程不是Form的,是控制台的,请问有没有类似与Invoke的方法,在子线程中通知主线程做出响应?
谢谢回帖
...全文
651
8
打赏
收藏
请问子线程如何通知主线程执行方法?
该贴中http://topic.csdn.net/u/20090227/15/5be6748d-c496-42cf-86a9-f40cb80bcfbb.html 提到子线程通知主线程做出响应,用到的是Form的Invoke方法 但是,我的主线程不是Form的,是控制台的,请问有没有类似与Invoke的方法,在子线程中通知主线程做出响应? 谢谢回帖
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
太上老君
2010-10-07
打赏
举报
回复
console的主线程是main啊,主线程出不了main啊,主线程到main的},整个程序就结束了,怎么叫通知主线程执行方法啊,主线程就一个main方法。console的多线程只是让main执行到某一句停住而已。
第二,你的winform窗体那也不是主线程啊,主线程还是main,窗体只是main创建的第一个对象,但是mian只有这一句(大意),才显得像主线程,其实他只是运行在主线程上的一个对象,但是他的特点是主要不关闭,main就没法继续执行,窗体关闭后,main还会继续执行}这个才完。
要想达到你说的这种,先弄一个类,像form类一样不关就卡住main不动的那种,然后main以单线程创建实例,这样这个实例就在主线程了,从这个类里开线程,然后用委托回调,这样就你说的子线程通知主线程了,很奇怪的一个程序。
nicholaskj
2010-10-07
打赏
举报
回复
[Quote=引用 5 楼 laotse 的回复:]
console的主线程是main啊,主线程出不了main啊,主线程到main的},整个程序就结束了,怎么叫通知主线程执行方法啊,主线程就一个main方法。console的多线程只是让main执行到某一句停住而已。
第二,你的winform窗体那也不是主线程啊,主线程还是main,窗体只是main创建的第一个对象,但是mian只有这一句(大意),才显得像主线程,其实他只是运行在主线程上的一个对象……
[/Quote]
您看问题确实透彻
我的主线程确实不是控制台
因为我做的二次开发,主程序加载我的dll
不知道能不能在dll中获取主窗口的句柄构造form,这样就可以使用invoke了,在主线程中调用方法。
肄若芸
2010-10-07
打赏
举报
回复
委托+事件
用法参考:http://msdn.microsoft.com/zh-cn/library/ms173176(v=VS.80).aspx
nicholaskj
2010-10-06
打赏
举报
回复
[Quote=引用 3 楼 zenghd 的回复:]
在多线程中不能直接执行与界面有关的代码,假如涉及到界面,那就虽然使用到InvokeRequired、Invoke或者委托、 事件
既然你不能使用InvokeRequired和Invoke那就使用委托和事件
至于委托是不是属于线程的,那有什么关系呢?
[/Quote]
因为有些代码必须在主线程下执行,在子线程下会出错,我也弄不清为什么
所以想在子线程通知主线程,让主线程做出反应
ZengHD
2010-10-06
打赏
举报
回复
在多线程中不能直接执行与界面有关的代码,假如涉及到界面,那就虽然使用到InvokeRequired、Invoke或者委托、 事件
既然你不能使用InvokeRequired和Invoke那就使用委托和事件
至于委托是不是属于线程的,那有什么关系呢?
nicholaskj
2010-10-06
打赏
举报
回复
[Quote=引用 1 楼 zenghd 的回复:]
委托 事件
[/Quote]
不知道能否详细一些,我尝试使用委托,
但是刚才有人说,线程执行的委托属于线程的,该怎么处理呢?
ZengHD
2010-10-06
打赏
举报
回复
委托 事件
C#
子
线程
执行
完后
通知
主
线程
的
方法
博客介绍了让
子
线程
做
主
线程
事情的
方法
,即把
主
线程
的
方法
通过委托传值给
子
线程
。还给出
子
线程
完成任务后
通知
主
线程
的例
子
,提到可自定义委托,也能使用泛型委托处理,最后展示了运行结果。
关于在
子
线程
中在run
方法
执行
完之后
通知
主
线程
进行操作的
方法
。(Toast在
子
线程
中无法使用)
本文介绍了一种在
子
线程
完成操作后
通知
主
线程
更新UI的有效
方法
,通过定义回调接口并利用Handler机制实现跨
线程
通信,解决了Toast等组件在
子
线程
中无法正常使用的问题。
java
子
线程
通知
主
线程
_java-在
子
线程
中
执行
主
线程
方法
本文解释了Java中ClassTestExample类的Dance
方法
如何不属于
主
线程
,而是创建的Child
线程
执行
。详述了main
方法
作为程序入口点的角色,并通过代码实例演示了如何在新
线程
中调用dance()。
c#
子
线程
与
主
线程
之间通信
本文介绍了一种在C#中实现
子
线程
与
主
线程
间通信的
方法
,利用SynchronizationContext对象记录
主
线程
上下文,在
子
线程
完成任务后
通知
主
线程
执行
特定操作。
子
线程
循环10次,接着
主
线程
循环100,接着又回到
子
线程
循环10次,接着再回到
主
线程
又循环100,如此循环50次,请写出程序。 ...
本文介绍了一个使用Java多
线程
实现特定任务交替
执行
的程序,通过
子
线程
与
主
线程
的循环调用,模拟了复杂任务流程的并发处理。详细展示了如何利用同步
方法
、等待和
通知
机制来协调不同
线程
之间的
执行
顺序。
C#
111,129
社区成员
642,540
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章