theevent0=CreateEvent(NULL,false,false,NULL);\\这是在主线程里面的信息量的创建
  满足一定的条件时候调用SETEVENT
   
    
        DWORD WINAPI Fun0Proc(LPVOID lpParameter )    //800*400     这是另外一个线程 waitforsingleobject一开始就能捕获到信息量 向下面执行 可是我并没有设置信息量啊  {          int i=0;int  flag=0;long byteswritten;
            while(i<8)
    { 
      WaitForSingleObject(theevent0,200);
if(flag==0)
{
byteswritten=fwrite(buffer0[0],4096,13500,yuv0);
            printf("%d bytes have been

解决方案 »

  1.   

    WaitForSingleObject(theevent0,200);
    因为设置了200毫秒的等待时间,没有信号等待超时后当然向下执行了。如果一定要等到有信号才能执行下去,那就设为INFINITE。否则可以通过判断它的返回值;WAIT_OBJECT_0 为等待信号成功; WAIT_TIMEOUT:等待超时
      

  2.   

    不是已经说了么:“如果一定要等到有信号才能执行下去,那就设为INFINITE。”WaitForSingleObject(theevent0,INFINITE);
    一直等,直到有信号。在等待的时候,线程就是阻塞状态
      

  3.   

    WaitForSingleObject(theevent0,200);
    ================
    后面的200表示超过时间,过了这个时间就不等了,如果想一直等下去将200改为INFINITE就行了。