1

現在、私は次のコードを思いつきました:

前提条件:

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 リソースに関する) 方法はありますか?

4

3 に答える 3