我对WndProc的定时器过程功能有疑问。 如果Display_function在定时器调用的函数之后还没有完成,如果下一个TM_TIMER函数被及时调用但仍然在运行Display_function会发生什么呢?
LRESULT CALLBACK WndProc(HWND hWnd, UINT iMessage, WPARAM wParam, LPARAM lParam)
{
HDC hdc;
PAINTSTRUCT ps;
static HANDLE hTimer;
switch (iMessage)
{
case WM_COMMAND:
switch (LOWORD(wParam))
{
case 0:
hTimer = (HANDLE)SetTimer(hWnd, 1, 10, NULL); //10ms
SendMessage(hWnd, WM_TIMER, 1, 0);
break;
....
case WM_TIMER:
switch (wParam)
{
case 1:
Display_function(hWnd);
break;
}
答案 0 :(得分:2)
从邮件队列中检索邮件时,将合成计时器消息。他们不能从任务中断线程。
定时器消息通常是通过主消息循环中对GetMessage
的调用合成的。