读书人

GetMessage ,PostThreadMessage的有关

发布时间: 2012-03-27 13:44:24 作者: rapoo

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

读书人网 >C++

热点推荐