社区
进程/线程/DLL
帖子详情
主线程判断子线程完全结束后再返回,怎么实现?
my12121
2007-01-30 04:11:32
主线程必须判断子线程结束,再往下执行。主线程这样实现的还是有问题,线程结束滞后:
while(1)
{
GetExitCodeThread(hThread,&ExitCode);
if(ExitCode==STILL_ACTIVE)
Sleep(10000);
else
break;
}
怎么改???
另外线程里是一个死循环,判断条件满足就ExitThread();现在发现界面操作响应巨慢,怎么回事呢?
...全文
439
14
打赏
收藏
主线程判断子线程完全结束后再返回,怎么实现?
主线程必须判断子线程结束,再往下执行。主线程这样实现的还是有问题,线程结束滞后: while(1) { GetExitCodeThread(hThread,&ExitCode); if(ExitCode==STILL_ACTIVE) Sleep(10000); else break; } 怎么改??? 另外线程里是一个死循环,判断条件满足就ExitThread();现在发现界面操作响应巨慢,怎么回事呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
14 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
jyl168
2007-03-07
打赏
举报
回复
mark
chair3
2007-01-31
打赏
举报
回复
楼主笨笨。。。。别人给你很多正确的意见,你就不要坚持己见了。
赶紧写代码测试去吧。呵呵
cutftp
2007-01-31
打赏
举报
回复
WaitForSingleObject()
my12121
2007-01-31
打赏
举报
回复
1.各位大侠,我试了一下,界面响应巨慢的问题不是由Sleep造成的,是因为我在创建线程时给了它更高的优先级。
2.如果不用sleep的方法,WaitForSingleObject()也不可以是为啥呢?现在子线程还是可以结束的,关键是主线程得不到这个结束的信息,早早的就把后面的事情给做了...
whiteclouds
2007-01-31
打赏
举报
回复
Sleep的效果相当于一个循环,Sleep(10000)会使程序在这里空转很久,别的线程根本不会得到执行机会。PostMessage也只在函数退出时才会把消息发出去,lz的问题只有使用线程同步才能解决,如共享锁、信号灯之类
yjgx007
2007-01-31
打赏
举报
回复
http://www.geekclaw.com/blog/post/56.html
hxfjb
2007-01-30
打赏
举报
回复
1 如果有界面线程,就是工作线程和界面线程的同步问题,必须通过SendMessage或者PostMessage让工作线程发送消息给界面线程,否则界面线程就会"死"掉.
2 如果是Win32程序或者控制台程序,WaitForSingleObject肯定可以的.
wangstrong4230
2007-01-30
打赏
举报
回复
crumpy() 说的没有错,就是用
if(hThread != NULL)
{
WaitForSingleObject(hThread, INFINITE);
CloseHandle(hThread);
}
楼主的方法就算成功了也是一个比较笨的方法,呵呵。
my12121
2007-01-30
打赏
举报
回复
晕那,理论上来说这种方式不是应该可以嘛? 我判断线程滞后是这样做的:this传过去一个int值,线程中改变它,主线程判断子线程结束了就把这个int值输出,结果值早早的就输出了,线程的信息N久之后才输出。
Event可以搞定嘛? 跟界面的操作有关系没?
珍惜生命远离CPP
2007-01-30
打赏
举报
回复
现在发现界面操作响应巨慢,怎么回事呢?
因为你调用了Sleep(10000);
最好的解决办法,在线程结束的时候向主线程PostThreadMessage
然后主程序再相应这个消息向下走
@@鹏~~~
2007-01-30
打赏
举报
回复
用Event试试
crumpy
2007-01-30
打赏
举报
回复
什么不行?
什么叫线程结束滞后? 什么意思?
my12121
2007-01-30
打赏
举报
回复
试过了,一样的,不行哦。
crumpy
2007-01-30
打赏
举报
回复
在主线程中用WaitForSingleObject(hChildTread, INFINITE);等待子线程结束
hChildThread是子线程的句柄
Java多
线程
快速上手经典
4: 代码演示:演示daemon
线程
,理解daemon
线程
和
主
线程
的关系第六节课:创建
线程
的方式之三 1: 代码演示:匿名内部类的方式来创建
线程
2:继续学习Thread类的源码,分析run方法的调用...
Java多
线程
之----
主
线程
会等待
子
线程
结束
再
结束
么,怎么让
主
线程
等待
子
线程
结束
呐?
首先给出结论:
主
线程
和
子
线程
之间没有谁先谁后
结束
...可以看到执行结果,
主
线程
结束
后,
子
线程
稍等了一会才
结束
执行,并没有
主
线程
需要等待
子
线程
结束
的情况。
主
线程
的任务: 1.thread.start 开启
子
线程
2.System.o
如何
实现
java
主
线程
等待
子
线程
执行完毕之后再执行?
本文转自:问题:如何
实现
java
主
线程
等待
子
线程
执行完毕之后再执行? - jseven - 博客园 点击关注强哥,查看更多精彩文章呀 工作总往往会遇到异步去执行某段逻辑, 然后先处理其他事情, 处理完后再把那段逻辑的处理...
c++
主
线程
等待
子
线程
结束
_
主
线程
等待
子
线程
结束
的多种方法
while循环对于“
主
线程
如何获取
子
线程
总运行时间”的问题,最开始想到的是使用while循环进行轮询:Thread t = new Thread(() -> {//
子
线程
进行字符串连接操作int num = 1000;String s = "";for (int i = 0; i <...
Java多
线程
-
主
线程
等待
子
线程
结束
最近有个项目需求是
线程
池
子
线程
进行数据处理、入库,所有
子
线程
运行完成之后需要汇总
子
线程
运行数据。这里简单介绍一下
主
线程
等待
子
线程
结束
的集中方式
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章