HANDLE m_hEventKill;
HANDLE m_hEventInput;
HANDLE m_hThread;m_hThread=CreateThread(NULL,0, LPTHREAD_START_ROUTINE (InputStreamThread),this,0,&dw);
m_hEventInput= CreateEvent(NULL,TRUE,FALSE,NULL);
m_hEventKill= CreateEvent(NULL,FALSE,FALSE,NULL);
SetEvent(m_hEventInput);
ResetEvent(m_hEventInput);
WaitForMultipleObjects(2,hMulEvents,FALSE,INFINITE)

解决方案 »

  1.   

    CreateThread是创建线程
    CreateEvent是创建事件
    SetEvent是设置事件有信号
    ResetEvent是设置事件无信号
    WaitForMultipleObjects是等待信号
    各个参数的含义在MSDN中都有详细说明
      

  2.   

    学过《WINDOWS程序设计》没有?
    看看MSDN就知道了
      

  3.   

    hMulEvents
    这个参数应该定义为数组,并将两个事件handle填入其中
      

  4.   

    上面的给HANDLE型变量 所赋的值,均为Windows内核句柄.
    [<<windows内核编程>>第三章有解释]CreateThread()[这个函数有缺陷,很少用,通常用_beginthread()或是后加Ex]
    的返回值是个线程内核句柄,为什么要返回它? 因为有可能你要控制它,比方说:
    你又在此进程创建了一个线程,在这个线程中你要强制终止上面这个线程,
    那么,就可以用TerminateThread(hYourthread,...).CreateEvent()的返回值是一个事件内核句柄,事件内核对象可用于线程,进程
    间同步,或是消息传递.(哦,这个消息不是windows消息). 比方说:你的进程中
    存在三个线程:A B C, 线程A用TerminateThread(hBthread,..)强制终止B线程,
    成功后,就用个SetEvent(hYourEvent,..)设置YourEvent对象,让它成为有信号
    状态. 线程C一直等待系统是否终止了B线程,若终止就运行其它代码.那么如何
    判断是否终止那? 就用WaitForSingleObject(hYourEvent,..)直等到YourEvent
    成为有信号为止,此函数才会返回,此下面的代码也才能继续执行.over!
      

  5.   

    这是用SDK编写Windows的线程,
    如果用MFC,应该使用CEvent的对象。