查看单个帖子
  #1 (permalink)  
旧 2005-07-12
bowen1981 bowen1981 当前离线
初级会员
 
注册日期: 2005-07-12
帖子: 2
bowen1981 正向着好的方向发展
默认 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先,但我后面还有要运行的阿。可不可以并行运行
回复时引用此帖