天天看點

Dll中使用定時器

請大家仔細看看,我寫的這段Dll定時器函數代碼,它的效率如何:

DWORD WINAPI TimerThread(LPVOID pamaram)

{

UINT oldTickCount, newTickCount;

oldTickCount = GetTickCount();

while(TRUE)

{

while(TRUE)

{

newTickCount = GetTickCount();

if(newTickCount - oldTickCount >= 60000)

{

oldTickCount = newTickCount;

break;

}

}

// 60毫秒自動調用函數

SomeFun();

}

return 0;

}

再看看偵探大佬幫我修正後的代碼:

(SwitchToThread主要是用來騰出時間片讓其他線程執行,這樣可以提高在單核機器的CPU的執行效率)

DWORD WINAPI TimerThread(LPVOID pamaram)

{

UINT oldTickCount, newTickCount;

oldTickCount = GetTickCount();

while(TRUE)

{

while(TRUE)

{

newTickCount = GetTickCount();

if(newTickCount - oldTickCount >= 60000)

{

oldTickCount = newTickCount;

break;

}

else

SwitchToThread();

}

// 60毫秒自動調用函數

SomeFun();

}

return 0;

}

繼續閱讀