想尝试一下多线程,为什么运行后没反应?

forever_chang 2002-05-27 03:16:54
#include <windows.h>
#include <process.h>
#include <stdio.h>

unsigned __stdcall myfunc1 (void * p);

void main()
{
unsigned long thd;
unsigned tid;
thd=_beginthreadex(NULL,0,myfunc1,0,0,&tid);
if (thd!=NULL)
{
CloseHandle(thd);
}
}

unsigned __stdcall myfunc1(void * p)
{
while (1)
{
printf ("1");
}
}
...全文
41 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
HardLoveC 2002-05-27
  • 打赏
  • 举报
回复
在VC中编译时注意采用多线程编译方式。
HardLoveC 2002-05-27
  • 打赏
  • 举报
回复
我试了一下,程序本身没有问题,主要是你的主程序很快就结束了,所以你看不到打印出来的“1”,可以在if语句后面加一句getchar(),让主函数停下来,就可以看到结果,按任意键结束。
dlgab 2002-05-27
  • 打赏
  • 举报
回复
if (thd==NULL)
{
CloseHandle(thd);
}
运行完后再关闭
southnan 2002-05-27
  • 打赏
  • 举报
回复
if (thd!=NULL)
{
CloseHandle(thd);
}
还没有运行,你就关闭线程了,怎么会有结果呢?
forever_chang 2002-05-27
  • 打赏
  • 举报
回复
高手说句话啊!

15,471

社区成员

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

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