C++ 线程终止问题

joy_91 2012-04-08 10:19:23
想完成一个简单监控进程:当运行时间到达一定限制后,进行一定处理后结束进程。
初步代码如下,时间到后,的确主进程会结束,但cout<<"this is my thread!"为什么没有被执行就直接终止了
其实,对于ExitProcess中的参数也不甚了解

C++线程使用菜鸟级别望高手耐心解答

在线等待


DWORD WINAPI MyThread(HANDLE Thread1)
{

while(true)
{
if ((long double)(clock()-start)/CLK_TCK==3.0)
//终止主进程
{
cout<<"this is my thread!";
ExitProcess(1);

}
}
return 0;

}
...全文
170 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
winteredchengxu 2012-04-08
  • 打赏
  • 举报
回复
对这方面知识空白
帮楼主顶贴
joy_91 2012-04-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 evencoming 的回复:]
ExitProcess只有一个参数,参数用来表示线程的返回值.
[/Quote]
VOID ExitProcess(
UINT uExitCode // exit code for all threads
);
Parameters
uExitCode
[in] Specifies the exit code for the process, and for all threads that are terminated as a result of this call.

不明白其中的exit code 具体指什么
joy_91 2012-04-08
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 hnwyllmm 的回复:]
if ((long double)(clock()-start)/CLK_TCK==3.0)
start是一个未声明的变量,初始化值未知,还有,clock()-start正好等于3*CLK_TCK,也太凑巧了
这个条件表达式很难成立
[/Quote]

这段代码是附属的监控部分,start是程序运行开始的clock()
当运行时间一到3*CLK_TCK就终止
羽飞 2012-04-08
  • 打赏
  • 举报
回复
查看这个程序是否输出了东西,可以把标准输出重定向到某个文件中,例如这样运行程序:
hello.exe > D:\1.txt
或者用断点跟踪是否运行到了这一行
羽飞 2012-04-08
  • 打赏
  • 举报
回复
if ((long double)(clock()-start)/CLK_TCK==3.0)
start是一个未声明的变量,初始化值未知,还有,clock()-start正好等于3*CLK_TCK,也太凑巧了
这个条件表达式很难成立
evencoming 2012-04-08
  • 打赏
  • 举报
回复
ExitProcess只有一个参数,参数用来表示线程的返回值.

64,649

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧