社区
Windows SDK/API
帖子详情
请问:怎么判断一个进程已经执行完毕?
ATmega32
2008-06-24 02:58:52
CreateProcess(NULL,sCommandLine.c_str(),&sa,&sa,TRUE,CREATE_NO_WINDOW,NULL,NULL, &si, &pi);
请问:怎么判断这个进程已经执行完毕?
...全文
321
7
打赏
收藏
请问:怎么判断一个进程已经执行完毕?
CreateProcess(NULL,sCommandLine.c_str(),&sa,&sa,TRUE,CREATE_NO_WINDOW,NULL,NULL, &si, &pi); 请问:怎么判断这个进程已经执行完毕?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
7 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
whomin
2008-06-25
打赏
举报
回复
线程构造函数传参数的方法:
class TThreadA : public TThread
{
public:
__fastcall TThreadA(bool CreateSuspended,此处放从主线程传过来的参数):TThread(true)
{
//此处可以将主线程传入的参数用变量存储
};
}
主线程在创建该线程时传入参数即可
关于消息处理:
1.主线程类需要做的事情:
自定义一类新消息,代表所关注进程结束:
#define WM_MYMESSAGE (WM_USER+100)
在主线程声明中建立消息映射表,把某条消息的处理权交给自定义的消息处理函数。
BEGIN_MESSAGE_MAP
MESSAGE_HANDLER(WM_MYMESSAGE,TMessage,消息处理函数名)
END_MESSAGE_MAP(TForm)
在主线程类中声明消息处理函数:
void __fastcall 消息处理函数名(TMessage &Message);
并在cpp中具体写出消息处理函数,在这里实现你需要的功能。比如:
void __fastcall TMainForm:: 消息处理函数名(TMessage &Message)
{
... // 此时已得知关注进程结束,在此加入你自己的处理代码
TForm::Dispatch(&Message); //如果不是自定义消息,则最好继续往后传递
}
2.子线程如何传递消息:
PostMessage(主线程句柄,WM_MYMESSAGE,0,0);
僵哥
2008-06-24
打赏
举报
回复
IsRunCompleted = WaitForSingleObject(Thread->Handle,0)!=WAIT_TIMEOUT;
ATmega32
2008-06-24
打赏
举报
回复
多谢讲解.
1.有没有办法不阻塞主线程查询一个进程是否执行完毕?
2.创建一个线程,在构造函数里面转递参数?怎么实现?
能否给个简单代码示例?
3.发送消息通知主线程?
能否给个简单代码示例.
才学C++BUILDER,已经买了3本C++BUILDER的书,但书上都没有讲Windows API以及进程,线程.
请问,这些类容哪里可以找到参考资料?或者推荐本书?
whomin
2008-06-24
打赏
举报
回复
1楼、3楼正解。
主线程创建子线程时就可以传参数(通过构造函数即可),子线程通过发送消息来通知主线程。
jxw1987628
2008-06-24
打赏
举报
回复
发送消息通知主线程
ATmega32
2008-06-24
打赏
举报
回复
多谢楼上.
不过会阻塞主线程.
有没有办法不阻塞主线程查询一个进程是否执行完毕?
如果动态创建一个子线程,再再子线程中等待 另外一个进程执行完毕,这样就不怕阻塞了.
请问这样好实现吗?
主线程怎么传递参数到子线程?子线程怎么返回参数到主线程?
loveshell
2008-06-24
打赏
举报
回复
WaitForSingleObject(进程Handle,超时时长).
打通Linux脉络系列:
进程
、线程和调度
本课程分成4个组成部分,每次课60分钟,每次课后留下3-4个练习题,可以在Linuxer公众号留言讨论答案和做题... 第四部分:讲解Linux多核下CPU、中断、软负载均衡、cgroups调度算法以及Linux为什么不是
一个
实时操作系统。
多任务并发:如何
判断
线程池中的任务都
已经
执行
完毕
?
前言: 多线程并发,我们往往采用线程池来管理并发的线程。但是,我们往往有这样的需要:要求在线程池中的任务都完成后才能
执行
后续的任务,或者需要任务都完成后释放资源或向数据库写入状态。这些都需要我们
判断
线程池的任务是否都
已经
完成。
判断
线程池中的任务是否全部完成,方式有不少,这里我来整理一下。 一、使用线程池的原生函数isTerminated(); 优点:操作简便; 缺点:需要主线程阻塞; execu...
如何
判断
通过ShellExecute
执行
的应用程序
已经
执行
完毕
?
如何
判断
通过ShellExecute
执行
的应用程序
已经
执行
完毕
? 今日工作中遇到一问题,当我
执行
完ShellExecuteEx函数后,发现他不等待ShellExecuteEx调出的
执行
程序
执行
完毕
,就继续其他代码行。为此特地学习了一下,总结方法有二: 方法一: ...... // 代码行 SHELLEXECUTEINFO sei; memset(&sei, 0, sizeof(SH
面试题——如何
判断
线程
已经
执行
完毕
不使用线程池的情况下 调用Thread.isAlive()方法,如果该线程没有
执行
完毕
,会返回true; 调用Thread.activeCount()方法,返回当前线程组的运行线程数量,一般是1,可是IDEA
执行
用户代码的时候,实际是通过反射方式去调用,而与此同时会创建
一个
Monitor Ctrl-Break 用于监控目的。 附加知识点:如果想要当前a线程在b线程结束后才允许,可以在a线程的语句块中调用b线程的join()方法。 使用线程池的情况下 在线程池的线程启动后,
执行
线程池的shutdow
Linux中fork创建兄弟子
进程
,验证
进程
之间全局变量不共享,exec函数族
文章目录编程环境:并行和并发:并发:
一个
时间段,处理请求的个数并行:多个
进程
同时进行任务分配:PCB 和
进程
的五种状态:
进程
控制块 PCB:
进程
的五种状态:
进程
控制块,父
进程
创建子
进程
的分析 ????:父
进程
如何创建多个兄弟子
进程
(不含孙
进程
)????:
进程
之间是否共享全局变量:????显示当前
进程
的状态 ps:删除
执行
中的程序或工作 kill:exec 函数族 ????:
执行
指定目录下的程序 execl():
执行
P...
Windows SDK/API
1,221
社区成员
8,136
社区内容
发帖
与我相关
我的任务
Windows SDK/API
C++ Builder Windows SDK/API
复制链接
扫一扫
分享
社区描述
C++ Builder Windows SDK/API
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章