•  

ГлавнаяIndyЧастые вопросы по Indy → TIdUDPServer как закрыть приложение при получении определённого символа?

Создано: 17.05.2014 1:11:59 · Исправлено: 17.05.2014 1:11:59 · Прочтений: 644

Здравствуйте. Уперся, создаю компонент TIdUDPServer, на событии OnUDPRead проверяю что приходит от клиента. при приходе символа ^ должно закрыться приложение (Tform.close), оно не закрывается, зависает на методе TIdUDPServer.Free. подскажите пож. что может быть.
Скорее всего, OnUDPRead срабатывает в другой нити, и из этого обработчика вообще к коду VCL обращаться нельзя.
А как же можно организовать?
Если не вызывать метод Free для udp-сервера при закрытии формы то всё нормально закрывается. Зависает именно на методе Free посмотрел в отладчике там действительно стоит ограничение {IFDEF MSWINDOWS}, может не освобождать память?
Сделать в обработчике PostMessage главной форме, а при обработке этого сообщения уже делать Free серверу.
Вот спасибо Антон, закрывается через postmessage без вопросов.
Уважаемый Антон, не могли бы вы привести пример подобного кода, но для остановки сервера, с учетом факта, что сервер поддерживает сразу множество соединений. То есть вопрос следующий: Как остановить сервер на indy при закрытии приложения по Close