为什么线程只能执行一次?

SENDFREE 2002-04-27 06:09:59
下面的程序里我用了两次 WaitForSingleObject执行线程函数,为什么显示
只运行了一次?

#include "windows.h"
#include "stdio.h"

DWORD WINAPI myThread(LPVOID junk)
{
printf("In my thread\n");
return 0;
}

int main(int argc, char* argv[])
{
DWORD tid;
HANDLE hthread;
hthread=CreateThread(NULL,0,myThread,NULL,0,&tid);
if(hthread)
{
printf("In main program\n");
WaitForSingleObject(hthread,INFINITE);
WaitForSingleObject(hthread,INFINITE);
}

return 0;
}
...全文
135 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
ufox 2002-04-27
  • 打赏
  • 举报
回复
WaitForSingleObject(hthread,INFINITE);
WaitForSingleObject(hthread,INFINITE);
他们能让你底线程执行两次吗?不行吧.他是等待你底线程结束吧?我经常在结束一个线程底时候才用这样底语句的
好像create后就执行了吧。一旦函数退出,你的线程就退出了,并且彻底从内存中卸了

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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