powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / waitFor в потоке
3 сообщений из 53, страница 3 из 3
waitFor в потоке
    #39931762
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kealon(Ruslan)
YuRock
пропущено...
Это понятно. Иначе execute не закончится.
Вопрос, что будет, если waitfor уже вызван в оконном потоке, а еще не все synchronize-вызовы обработалист в execute.
Ответ - будет дедлок.
не будет, см реализацию, там специальная затычка на главный поток
она обрабатывает появившиеся synchronize и сообщения
Да, посмотрел, действительно, в WaitFor для главного потока (в моей версии дельфей) в цикле вызывается CheckSynchronize, пока execute не закончится.
Что грузит ядро на 100% - тоже красиво.
...
Рейтинг: 0 / 0
waitFor в потоке
    #39931818
DmSer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий 2
DmSer

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
procedure WaitCmd();
begin
  WaitForm.Show;
  while not FThread.IsReady do
  begin
    Application.ProcessMessages;
    Sleep(10);
  end;
  WaitForm.Hide;
  if FThread.IsError then
    raise Exception.Create(FThread.FError + ' ');
end;



А не легче WaitForm.ShowModal, а по таймеру if FThread.IsReady then ModalResult := mrOK?


В итоге так и пришлось сделать :)
...
Рейтинг: 0 / 0
waitFor в потоке
    #39932026
Фотография Док
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DmSer
В итоге так и пришлось сделать :)

Я вот тоже подумал, по мухи и котлеты. Либо таймер, либо ProcessMessage...
...
Рейтинг: 0 / 0
3 сообщений из 53, страница 3 из 3
Форумы / Delphi [игнор отключен] [закрыт для гостей] / waitFor в потоке
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]