一个服务器程序,由一个主线程下面开了很多个子线程服务于上面的子线程。
请问:
 假设子线程捕捉到了一个消息,并且需要把这个消息发送给主线程马上进行处理,子线程如何发送这个消息给主线程,主线程又如何控制、监视子线程发送过来的消息并进行处理呢?// 主程序
void main()
{
DWORD thread_ID;
_thread_handle = ::CreateThread( NULL, 0, 
resource_asker::threadproc, this, 0, &thread_ID );
         // 如果单纯这么的建立线程,那么建立以后就可能和子线程失去了联系了,
         // 主线程无法知道下面的子线程的状态并加以控制
}// 子线程
DWORD WINAPI task::threadproc(LPVOID lpParameter)
{
         SomethingHappened(...);
return 0;
}

解决方案 »

  1.   

    : flyelf(空谷清音) 
    -------------------
    根据我上面的示例代码,可以说详细点吗?
      

  2.   

    http://www.yesky.com/20030324/1658935_2.shtml
      

  3.   

    在线程中发消息
    ::PostMessage((HWND)hwnd->m_hwnd,WM_YOUMESSAGE,NULL);
    通知主函数,消息最好为自定义消息#define WM_YOUMESSAGE 3001;
    然后加入到Message map 消息循环中
      

  4.   

    PostThreadMessage
    或者用WaitForSingle(Multi)Object结合Event来处理(多看看有关同步对象的资料)