我有一个程序,主线程里面通过事件数组来触发所有子线程同时接收工作
CEvent recv[16];
......
while(1)
{
for(i=0;i<16;i++)
{
recv[i].SetEvent;
}
waitforsingleobject(recvfinish.m_hobject,INFINITE);//关键是这里,这里设了一个10ms定时器当时间一到就
//recvfinish.setevent,然后进行后面的工作,但是定时器不准,也不想用定时器了,请问有没有什么办法,
//当所有子线程将数据都写完后,主线程就会知道可以继续下一步了,即不用定时器来控制下一步操作}
各个子线程里面分别等待各自的recv[i],来同时向一个buf的不同位置写入数据
while(waitforsingleobject(recv[i].m_hobject,INFINITE) == WAIT_OBJECT_0)
{
....
}
CEvent recv[16];
......
while(1)
{
for(i=0;i<16;i++)
{
recv[i].SetEvent;
}
waitforsingleobject(recvfinish.m_hobject,INFINITE);//关键是这里,这里设了一个10ms定时器当时间一到就
//recvfinish.setevent,然后进行后面的工作,但是定时器不准,也不想用定时器了,请问有没有什么办法,
//当所有子线程将数据都写完后,主线程就会知道可以继续下一步了,即不用定时器来控制下一步操作}
各个子线程里面分别等待各自的recv[i],来同时向一个buf的不同位置写入数据
while(waitforsingleobject(recv[i].m_hobject,INFINITE) == WAIT_OBJECT_0)
{
....
}
怕影响消息循环,那就开一个专门的线程等了。
waitForMultiObject()不就可以了么,不明白你的意思
http://blog.csdn.net/qingfeng_happy5/archive/2008/12/14/3515283.aspx