Это неправильный дизайн.
THTTPServer
- многопоточный компонент. Его OnCommand...
события запускаются в контексте рабочих потоков, которые Indy создает для вас.
Таким образом, вам не нужно извлекать TMsgHandler
из TThread
. Вместо этого выполните TIdHTTP
непосредственно в контексте потока OnCommand...
. Ответ не будет отправлен обратно клиенту, пока ваш обработчик событий не завершится (если вы не отправите его вручную). Однако вы не должны совместно использовать один TIdHTTP
из основного потока (кроме случаев, когда это абсолютно необходимо, в этом случае вам необходимо синхронизировать доступ к нему). При необходимости вы должны динамически создавать новый TIdHTTP
непосредственно в коде OnCommand...
/ TMsgHandler
.