delphi xe10.2.3 Асинхронные потоки или как управлять timeout socks smtp
программа многопоточная, все выполняется в потоке TThread, на примере 1 поток:
Имею конструкцию:
SMTP:= TIdSMTP.Create(nil);
SSL:= TIdSSLIOHandlerSocketOpenSSL.Create(SMTP);
Socks:= TIdSocksInfo.Create(ssl);
SMTP.IOHandler:=SSL;
SSL.TransparentProxy := socks;
SMTP.AuthType:=satDefault;
SMTP.Host:=host;
SMTP.Port:=port;
SMTP.Username:=email;
SMTP.Password:=pass;
SMTP.ReadTimeout:=Mailer.TimeOut;
SMTP.ReadTimeout:= Mailer.TimeOut;
SMTP.Socket.ConnectTimeout:= Mailer.TimeOut;
SMTP.Socket.ReadTimeout:=Mailer.TimeOut;
SSL.ReadTimeout:=Mailer.TimeOut;
SSL.ConnectTimeout:= Mailer.TimeOut;
....
try
SMTP.Connect;
excpet
end;
Как видим я прописал TimeOut уже где только можно или нельзя в SMTP, SMTP.SOCKET, SSL, однако он все равно работает так же если бы я вовсе не указывал TimeOut. Вопрос такой как мне запустить SMTP.connect в асинхронном потоке, т.е. мне просто нужно допустим запустить таймер и асинхронную процедуру и проверять подключился за 6 секунд или нет, если да, то то-то, если нет, то то-то. Или же как корректно выставить TimeOut в Delphi для подобных вещей?