Цитата:
Сообщение от nixon232
В первых вариантах был слип, но он мне фризил интерфейс основной формы, этот вариант мне помог.
|
Если дополнительный поток вызывает подвисание основного, значит что-то Вы делаете неверно. А именно программа не попадает в цикл обработки сообщений. Что Вы решили добавлением Application.ProcessMessage. Т.е. деления на потоки у Вас и не получилось.
Цитата:
Сообщение от nixon232
Потом, я нашел причину фризов, а возвращать слип как-то не стал. Это может быть как-то связано с проблемой?
|
Сложно сказать. Поставьте брейк и посмотрите откуда ноги растут. Хотя если бы мне нужна была пауза в потоке, и ничего кроме неё, Sleep вполне оправдан (это позволяет притормозить вызвавший поток и дать время на отработку остальных, что и должно предотвращать зависание).
Как итог, по Вашему куску кода можно сказать, что вся процедура WaitMe легко заменяется на Sleep. Ну а если пауза значительная и может повлиять на завершение программы (например пауза в 10 секунд не даст завершиться программе, пока доп поток не отработает), то можно сделать как мы с Вами обсуждали в прошлой теме - WaitForMultiplyObjects и ожидать либо таймер, либо событие завершения потока.