目前,我想出了以下代码:
先决条件:
CONST MinTime = 1000; // ms //
VAR ObjHandle : THandle := CreateEvent(NIL,TRUE,FALSE,'Event');
VAR T : LongWord;
VAR Signalled : BOOLEAN;
代码:
T:=GetTickCount; Signalled:=FALSE;
REPEAT
CASE WaitForSingleObject(ObjHandle,MinTime) OF
WAIT_OBJECT_0 : Signalled:=TRUE
END
UNTIL Signalled AND (GetTickCount-T>=MinTime);
这段代码的目的是等待外部信号事件(来自另一个线程),但每秒最多只响应一次。这是实现此功能的正确方法,还是有更优化(CPU 资源方面)的方法?