FWP
Legacy Member
Als ik threads implementeer in een hook van mij, ervaren single core gebruikers 100% CPU usage.
Hoe kan ik dit vermijden? Hier onder stukjes van de code, en de volledige broncode is hier beschikbaar:
Hoe kan ik dit vermijden? Hier onder stukjes van de code, en de volledige broncode is hier beschikbaar:
Code:
// Keyboard hook thread
HANDLE hKeyboardHook;
DWORD dwKeyboardHook;
hKeyboardHook = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)MyDirectInput, 0, 0, &dwKeyboardHook);
// Focus checking thread
HANDLE hCheckFocus;
DWORD dwCheckFocus;
hCheckFocus = CreateThread(0, 0, (LPTHREAD_START_ROUTINE)FocusChecking, 0, 0, &dwCheckFocus);
Code:
DWORD WINAPI MyDirectInput(LPVOID lpParm)
{
HINSTANCE hInstance = GetModuleHandle(0);
InitializeDirectInput(hInstance, 0);
MessageLoop();
return 0;
}
// Will check whether the game has focus, and if so, clip the cursor to the game
DWORD WINAPI FocusChecking(LPVOID lpParm)
{
while (true)
{
if (hasLostFocus & GetForegroundWindow() == FindWindow(0, targetWindowName))
{
ClipCursorToGame();
hasLostFocus = false;
}
Sleep(1);
}
return 0;
}