在Delphi中,可以使用WaitForSingleObject函數來等待一個對象的信號狀態變為可用。該函數的語法如下:
function WaitForSingleObject(hHandle: THandle; dwMilliseconds: DWORD): DWORD; stdcall;
其中,hHandle參數是要等待的對象的句柄,dwMilliseconds參數是等待的時間長度(單位為毫秒)。
下面是一個使用WaitForSingleObject函數的示例:
var??hEvent:?THandle; begin
??//?創建一個事件對象
??hEvent?:=?CreateEvent(nil,?False,?False,?nil);
??if?hEvent?<>?0?then
??begin
????//?等待事件對象的信號狀態變為可用
????if?WaitForSingleObject(hEvent,?INFINITE)?=?WAIT_OBJECT_0?then
????begin
??????//?事件對象的信號狀態為可用,執行相應的操作
??????ShowMessage('Event?signaled');
????end;
????//?關閉事件對象
????CloseHandle(hEvent);
??end; end;
在上述示例中,首先使用CreateEvent函數創建了一個事件對象,并將其句柄保存在hEvent變量中。然后,調用WaitForSingleObject函數等待事件對象的信號狀態變為可用,在等待期間,程序會一直阻塞。如果等待成功,即WaitForSingleObject函數返回WAIT_OBJECT_0,表明事件對象的信號狀態已經可用,此時可以執行相應的操作。最后,使用CloseHandle函數關閉事件對象。