Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Аноним, Вы писали:
L>>>Столько умных слов, а ничего не понятно. Ты лучше на пальцах покажи, чем наличие/отсутствие транспортного слоя поможет ему с проблемой зависания UI?
А>>Если на пальцах: WaitFor-функции НЕ должны вызываться из визуального (основного) потока, иначе GUI "замерзнет" до конца интервала или прихода сообщения. Для этого должен быть специальный поток. А он уже кидает в основной поток PostMessage() при завершении WaitFor-функции.
L>Уже лучше. Но все-таки хотелось бы понять как связаны транспортный слой и отсутствие/наличие WaitFor-ов?
Варианта два.
1. Оставить ожидание в потоке UI. Тогда нужно переписать функцию WaitFor таким обрахом чтобы она показывала юзеру что происходит — прогресс или обычный диалог с надписью waiting. Самый простой способ.
2. Вынести ожидание запросов в отдельный поток. Но только если UI не должен ждать завершения запроса. Т.е. если UI рассчитан на работу во время пока запрос еще не завершен.