Yes because you can't use Sleep() in one threaded library. You either create more threads or use tickcount: Code: static size_t lastTime = 0; if (GetTickCount() > lastTime) { // Do the trigger thing here. lastTime = GetTickCount() + TRIGGER_DELAY; }