Я использовал Indy большую часть времени в прошлом, но решил изменить существующий проект и использовать синапс вместо Indy. Хотя, у меня есть небольшой вопрос, чтобы спросить, что мы все знаем всякий раз, когда мы создаем объект сокета в Indy, он работает на своем собственном потоке, он выполняет все операции ввода-вывода в потоке, который он создал, и не освобождается или не закрывается до тех пор, пока объект свободен, я думаю.Synapse TTcpBlockSocket
Так что я очень хочу имитировать это на синапсе.
Т.Л., д-р:
Как создать Ttcpblocksocket
объект таким образом, что он выполняет все свои операции ввода-вывода на потоке, который не получает завершенные, пока объект не свободен?
от того, что я видел в случае синапса, если вы подключаетесь к хосту в основном потоке, он будет блокировать поток, если я не запустил его в новом потоке, в отличие от Indy, где он фактически не зависает нитью, поэтому я принял его создает свою собственную нить. – deeznutz
@deeznutz как клиенты Synapse, так и Indy TCP блокируются, метод Connect будет возвращаться при возникновении тайм-аута или установлении соединения – mjn
@deeznutz в Indy, 'Connect()' * не * работает в отдельном потоке, он * делает * блокировать вызывающий поток. Если это основной поток пользовательского интерфейса, пользовательский интерфейс будет заморожен, если вы не используете компонент 'TIdAntiFreeze', чтобы позволить сообщениям продолжать обрабатываться, когда основной цикл сообщения заблокирован. –