c语言线程问题 main(){
...
handle[i] = (HANDLE) _beginthread(ThreadProc,0,val[i]);
WaitForSingleObject(handle[i],INFINITE);
printf("Input your command: ");
gets(command);
...
}
我建立了线程后,必须等到ThreadProc运行完毕以后才能运行后面的gets, 有没有什么办法可以让线程建立以后可以不用等待线程完成,立即接着往下运行的呢?
来自:迷糊, 时间:2005-7-12 12:12:50, ID:3131739
main(){
...
handle[i] = (HANDLE) _beginthread(ThreadProc,0,val[i]);
//WaitForSingleObject(handle[i],INFINITE); 去掉
printf("Input your command: ");
gets(command);
...
}
来自:liangbowen, 时间:2005-7-12 14:41:27, ID:3131922 | 编辑
去掉那个连线程都不运行了,直接运行下面的了。
来自:xiaolin0522, 时间:2005-7-12 15:17:43, ID:3131971
main(){
...
handle[i] = (HANDLE) _beginthread(ThreadProc,0,val[i]);
printf("Input your command: ");
gets(command);
WaitForSingleObject(handle[i],INFINITE);
...
}
换个位置,你主线程都结束了,程序就结束了,当然你的其他的线程都会停止
来自:liangbowen, 时间:2005-7-12 15:24:51, ID:3131978 | 编辑
我主线程后面还有一个while循环呢,每sleep一秒就打印一句,但我始终看不到线程的运行。
换了位置的确是可以运行gets先,但我后面还有要运行的阿。可不可以并行运行 |