c++控制檯程式實現定時器

zhanglidn013發表於2014-10-31
#include "stdafx.h"
#include <iostream>
#include <Windows.h>

using namespace std;

void CALLBACK TimeProc(HWND hwnd,UINT message,UINT idTimer,DWORD dwTime);


int _tmain(int argc, _TCHAR* argv[])
{
    SetTimer(NULL,1,1000,TimeProc);
    MSG msg;
    while (GetMessage(&msg,NULL,0,0))
    {
        if (msg.message == WM_TIMER)
        {
            DispatchMessage(&msg);
        }
    }
	return 0;
}
int ncount = 0;
void CALLBACK TimeProc(HWND hwnd,UINT message,UINT idTimer,DWORD dwTime)
{
    cout<<ncount++<<endl;
}




#include "stdafx.h"
#include <ctime>
#include <Windows.h>
#include <conio.h>
#include <stdio.h>


int ncount = 0;

void CALLBACK TimerProc(HWND hWnd,UINT nMsg,UINT_PTR idEvent,DWORD dwTime)
{
    ncount++;

}

DWORD CALLBACK Thread(PVOID pvoid)
{
    MSG msg;
    PeekMessage(&msg,NULL,WM_USER,WM_USER,PM_NOREMOVE);
    UINT timerid = SetTimer(NULL,1,10000,TimerProc);
    BOOL bRet;
    while ((bRet = GetMessage(&msg,NULL,0,0)) != 0)
    {
        if (bRet == -1)
        {
            printf("Error:the thread will quit,error id is %d/n",GetLastError());
            break;
        }
        else
        {
            TranslateMessage(&msg);
            DispatchMessage(&msg);
        }
    }
    KillTimer(NULL,timerid);
    printf("thread end here/n");
    return 0;

}

int _tmain(int argc, _TCHAR* argv[])
{

    HANDLE hThread = CreateThread(NULL,0,Thread,NULL,0,NULL);
    _getch();
	return 0;
}



相關文章