线程间传递消息只有PostThreadMessage,而没有类似的SendThreadMessage.请问如何能编程实现。我本来想这样做,却不能成功。
......................
hCurThread=GetCurrentThread();
DWORD ReturnFormMessage;
PostThreadMessage(IDThrad,msg,(WPARAM)(hCurThread),&ReturnFormMessage);
SuspendThread(hCurThread);
......................
然后在另一线程的接收该消息的处理函数中:
......................................
*(LPDWORD)(msg.lParam)=ret;
ResumeThread(msg.hCurThread);
.......................................
发送线程被暂停。不能被重新激活。
......................
hCurThread=GetCurrentThread();
DWORD ReturnFormMessage;
PostThreadMessage(IDThrad,msg,(WPARAM)(hCurThread),&ReturnFormMessage);
SuspendThread(hCurThread);
......................
然后在另一线程的接收该消息的处理函数中:
......................................
*(LPDWORD)(msg.lParam)=ret;
ResumeThread(msg.hCurThread);
.......................................
发送线程被暂停。不能被重新激活。
服务线程如下形式:event没有这么方便,而且只支持一个客户线程。
。
*(LPDWORD)(msg.lParam)=ret;
ReleaseSemaphore(gl_HTD_Semaphore,1,0);
。客户线程如以下形式:
DWORD ReturnFormMessage;
PostThreadMessage(IDThrad,msg,NULL,&ReturnFormMessage);
WaitForSingleObject(gl_HTD_Semaphore, INFINITE);谢谢三位。结贴。