DELPHI WAITFORSINGLEOBJECT ПРИМЕР
Одним из способов синхронизации потоков в Delphi является использование функции WaitForSingleObject
, которая блокирует выполнение текущего потока до тех пор, пока указанный объект синхронизации не станет сигнальным.
Первым параметром функции WaitForSingleObject
является дескриптор ожидаемого объекта, а второй - время ожидания в миллисекундах:
var hEvent: THandle;begin hEvent := CreateEvent(nil, True, False, nil); if hEvent <> 0 then begin // ждем события не более 1 секунды if WaitForSingleObject(hEvent, 1000) = WAIT_OBJECT_0 then ShowMessage('Событие произошло') else ShowMessage('Произошел таймаут'); CloseHandle(hEvent); end;end;
В данном примере создается событие hEvent
, которое не является сигнальным. Затем функция WaitForSingleObject
ожидает до 1 секунды, пока это событие не станет сигнальным. Если ожидание закончится успешно, выводится сообщение "Событие произошло". Если же произойдет таймаут, выводится сообщение "Произошел таймаут".
Login form Delphi
C++ : WaitForSingleObject with thread handle get stuck while running delphi-hlp.ru
C++ : Waiting on a condition (pthread_cond_wait) and a socket change (select) simultaneously
Delphi #171 - Telnet
TTreeNodes and how to use them with Delphi
Windows : WaitForSingleObject on a file handle?
First look at Delphi 10.4.2 on Windows 11 ARM \u0026 macOS 12 ARM