创建10个线程:for(int i=0;i<10;i++)
{
DWORD ThreadID;
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)TestThread,(LPVOID)i,0,&ThreadID);
Sleep(100);
}线程函数:void TestThread(LPVOID lp)
{
int n = (int)lp;
for(int i=0;i<10000;i++)
{
printf("id: %d\r\n",i);
}
}我的意思是,10个线程 ,每个线程里面显示 10000个,10个就是10W个,但是显示明显不对?不知道我错在哪里。。
{
DWORD ThreadID;
HANDLE hThread = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)TestThread,(LPVOID)i,0,&ThreadID);
Sleep(100);
}线程函数:void TestThread(LPVOID lp)
{
int n = (int)lp;
for(int i=0;i<10000;i++)
{
printf("id: %d\r\n",i);
}
}我的意思是,10个线程 ,每个线程里面显示 10000个,10个就是10W个,但是显示明显不对?不知道我错在哪里。。
解决方案 »
- 怎样在MFC单文档下配置两个OPENGL环境分别进行绘制?
- 关于编写服务程序的问题
- 请问exit(0)包含在什么头文件中?我只写stdio.h,老是报错
- passthru 如何 修改 数据包内容???
- 谁知道比尔盖兹的邮件地址啊:?呵呵呵
- 我的程序loading大的时候偶尔会crash,不知道怎样debug才好?
- activex 控件怎么定义事件?
- 求助,如何不用MFC实现UrlEncode
- 请教VISTA及以上系统如何判断一个文件的最大图标是48×48还是256×256?
- 怎样使midi音乐循环播放?
- vs2008里strcpy()函数的问题
- 冰天雪地 十级大风 玻璃渣上360°裸体旋转跪求 能网络联机玩的坦克大战
printf("id: %d\r\n",i);
-->
printf("id: %d %d\r\n, n, i);
改为
HANDLE hThread[10];
for(int i=0;i<10;i++)
{
DWORD ThreadID;
hThread[i] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)TestThread,(LPVOID)i,0,&ThreadID);
}
WaitForMultipleObjects(10,hThread,TRUE,INFINITE);
尤其 是mcaok ~
我新手没有分。实在不好意思。以后有了一定补上
{
//socket
}
}HANDLE hThread[3];
for(int i=0;i<3;i++)
{
DWORD ThreadID;
hThread[i] = CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)TestThread,(LPVOID)i,0,&ThreadID);
}
WaitForMultipleObjects(3,hThread,TRUE,INFINITE);再请教下~同上
不过我用到了MFC,我设置WaitForMultipleObjects 的第一个参数 nCount 为 3也就是线程数的时候,程序界面无反应了,死了。线程没有执行。。
修改成 WaitForMultipleObjects(3,hThread,TRUE,3000);或者
WaitForMultipleObjects(4,hThread,TRUE,INFINITE);
就可以进入线程请问这个是什么原因啊
WaitForMultipleObjects(4,hThread,TRUE,INFINITE);nCount :3 与 4 是不是就是包含了界面线程?
{
int n = (int)lp;
for(int i=0;i<10000;i++)
{
printf("id: %d\r\n",i);
}
}线程函数记得要返回值!应该是下面样子
DWORD WINAPI ThreadProc(
LPVOID lpParameter // thread data
);
不是用个强转(LPTHREAD_START_ROUTINE)就可以的。
线程函数不返回,你等到花儿谢了也等不到。