有主程序
while(rolSentence!=NULL)
{
bool re=myFirstConvertFunGraph.Parse(rolSentence->cixing);
....
}
在myFirstConvertFunGraph.Parse(rolSentence->cixing);中会创建了多个线程,必须等这些线程都执行完毕才能进行下一次的循环判断,不然分析结果为混乱,请问:如何知道主程序本次创建的线程都执行完毕?
while(rolSentence!=NULL)
{
bool re=myFirstConvertFunGraph.Parse(rolSentence->cixing);
....
}
在myFirstConvertFunGraph.Parse(rolSentence->cixing);中会创建了多个线程,必须等这些线程都执行完毕才能进行下一次的循环判断,不然分析结果为混乱,请问:如何知道主程序本次创建的线程都执行完毕?
解决方案 »
- 树控件的修改问题
- 如何截留某一个固定进程对磁盘的访问全部数据,并能够重放回去,要双向的
- 如何让VC6支持IPV6开发
- 大疑问,CDatabase在其他类的构造函数中生成和连接,居然是无效的!
- 打包了,但是放了Active 控件的对话框一片空白?
- 如何从视频采集卡上获取位图?
- 当在 Menuitem 中弹出对话框(Modeless)时,如何 保持对话框数据在处理完之前 不消失
- mfc 对话框风格
- 菜鸟求助关于打印和打印预览。有答必酬!!!
- 一个VC初学者的困惑
- 百分求解:真奇怪了,从这段代码返回后,其他的数据库ADO都连接不上了?!急!!
- QQ图文发送方式?可否将OCX控件当作OLE对象插入CRichEditCtrl?ADO如何读取XML中的记录集?寻求技术高人请进
是不是在bool re=myFirstConvertFunGraph.Parse(rolSentence->cixing);下面写,写成:
waitforMultipleObjects(n , hThread,True,Infinite);
但可能这所有线程还没有创建完呢,myFirstConvertFunGraph.Parse(rolSentence->cixing);就执行完了,返回了,那怎么弄
里?
那就在这个函数里创建完所有线程后执行Wait如果一个子线程又创建了孙线程,那么在子线程退出之前强制它必须等待由其创建的孙线程....只能这样了,我也没想到啥好办法
比方说15个,然后,最后写成waitforMultipleObjects(6 , hThread,True,Infinite);
就是说只创建了6个,但hThread是15个元素的数组可以吧
以前没有用过多线程编程,确实要集中看看