线程间传递消息只有PostThreadMessage,而没有类似的SendThreadMessage.请问如何能编程实现。我本来想这样做,却不能成功。
......................
hCurThread=GetCurrentThread();
DWORD ReturnFormMessage;
PostThreadMessage(IDThrad,msg,(WPARAM)(hCurThread),&ReturnFormMessage);
SuspendThread(hCurThread);
......................
然后在另一线程的接收该消息的处理函数中:
......................................
*(LPDWORD)(msg.lParam)=ret;
ResumeThread(msg.hCurThread);
.......................................
发送线程被暂停。不能被重新激活。

解决方案 »

  1.   

    这个函数只适合窗口线程要是工作线程地话还是用event把
      

  2.   

    如果有SENDTHREADMESSAGE,那岂不要先同步线程? 同意楼上,建议用EVENT实现。
      

  3.   

    问题已解决,用信号量最方便,支持单服务线程,多客户线程。
    服务线程如下形式:event没有这么方便,而且只支持一个客户线程。

    *(LPDWORD)(msg.lParam)=ret;
    ReleaseSemaphore(gl_HTD_Semaphore,1,0);
    。客户线程如以下形式:
    DWORD ReturnFormMessage;
    PostThreadMessage(IDThrad,msg,NULL,&ReturnFormMessage);
    WaitForSingleObject(gl_HTD_Semaphore, INFINITE);谢谢三位。结贴。