現在、私は次のコードを思いつきました:
前提条件:
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);
このコードの目的は、(別のスレッドからの) 外部から通知されたイベントを待機することですが、これには 1 秒に 1 回しか応答しません。これはこれを実装する適切な方法ですか、それともより最適化された (CPU リソースに関する) 方法はありますか?