C++线程之间的通信问题。 5

现在编写了两个线程,希望通过子线程的SetEvent函数与主线程通信,主线程中用WaitForSingleObject函数来接收信息。调试时候发现程序的执行顺序似乎跟预想... 现在编写了两个线程,希望通过子线程的SetEvent函数与主线程通信,主线程中用WaitForSingleObject函数来接收信息。调试时候发现程序的执行顺序似乎跟预想的不一样。下面是相关代码,请给位高手帮帮忙,该使用另外的函数么?
主线程:
for(int i = 0; i<12;i++)
{
_beginthread(Grab, 0, NULL );
WaitForSingleObject(startgrab,INFINITE);
{
MdigProcess(MilDigitizer, MilGrabBufferList, MilGrabBufferListSize, M_START + M_FRAMES_PER_TRIGGER(1), M_ASYNCHRONOUS + M_TRIGGER_FOR_FIRST_GRAB , ProcessingFunction, &UserHookData);
i++;
}
}
子线程
void Grab(void *)
{
//Send software trigger signal
MdigControl(MilDigitizer, M_TIMER1 + M_GRAB_EXPOSURE, M_ACTIVATE);
SetEvent(startgrab);
Sleep(200);
_endthread();
}
展开
 我来答
zcwcjj
2015-03-08 · TA获得超过1637个赞
知道小有建树答主
回答量:911
采纳率:0%
帮助的人:546万
展开全部
我觉得应该是主线程循环一次,子线程完成后,主线程进入下一个循环,继续等待子线程完成。一共12次。你结果是什么
追问
我知道了问题的所在。谢谢您的回答。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式