-
Возможно ли получить событие OnTerminate если у программы нет окна? Посмотрел по коду - используется метод Synchronize. Получается писать вот так и ждать вызова нет смысла? Tread.OnTerminate:=HandleMonitorTerminate;
А какая альтернатива?
-
Правильно ли будет если в конце Execute я напишу: if Assigned(OnTerminate) then OnTerminate(self);
-
> А какая альтернатива?
А не использовать штатную синхронизацию.
Мало ли альтернатив, если нет формоокон, а, значит, нет и всех этих VCL-"премудростей"
-
> А какая альтернатива?
А не использовать штатную синхронизацию.
Мало ли альтернатив, если нет формоокон, а, значит, нет и всех этих VCL-"премудростей"
-
> Правильно ли будет если в конце Execute я напишу
Криминала не будет, но обработчик, если он назначен, будет вызван в контексте этого потока.
Оно тебе надо ?
Если надо, то никто и ничто не мешает.
-
уже в D7 никаких окон в Synchronize не используется, но: classes.pas
function CheckSynchronize(Timeout: Integer = 0): Boolean;
- по умолчанию, в "оконном приложении" - вызывается в TApplication.WndProc на WM_NULL и в TApplication.Idle(который дергается когда вычищается очередь сообщений главного окна)
|