GetMessage ,PostThreadMessage的问题
代码:
#include "stdafx.h"
#include "Message.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// 唯一的应用程序对象
CWinApp theApp;
using namespace std;
unsigned int __stdcall ReceiveMess(LPVOID lpParameter)
{
Sleep(5000);
DWORD id = *((DWORD*)lpParameter);
printf("开始发送");
if(!PostThreadMessage(id,9001,0,0))
{
int i = GetLastError();
printf("发送信息失败");
}
return 1;
}
int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
DWORD id = GetCurrentThreadId();
_beginthreadex(NULL,0,ReceiveMess,&id,0,NULL);
MSG msg;
int a = GetMessage(&msg,NULL,9000,9002); //在这里等待ReceiveMess里的PostThreadMessage发出信息,然后向下执行,但是为什么我PostThreadMessage发出信息了,这边还是一直卡着呢,是什么原因
if(a == -1 )
{
int i = GetLastError();
printf("错误:%d",i);
}
TranslateMessage(&msg);
DispatchMessage(&msg);
printf("测试");
int i=0;
scanf("%d",&i);
/*if(!PostThreadMessage(id,900001,0,0))
{
printf("发送信息失败");
}*/
return 1;
}
int a = GetMessage(&msg,NULL,9000,9002); //在这里等待ReceiveMess里的PostThreadMessage发出信息,然后向下执行,但是为什么我PostThreadMessage发出信息了,这边还是一直卡着呢,是什么原因
[解决办法]
一个阻塞 一个异步 呵呵
[解决办法]
[解决办法]
后面三个参数都是0