請大家仔細看看,我寫的這段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;
}