Задача такая: хочу работу с интернет, реализованную с помощью API-функций, повесить в отдельный поток и тем самым защититься от ситуевины, когда скрипт на стороне сервера завис и не отвечает.
Как хочу сделать: в потоке 1 вызываю, например, HttpSendRequest. Перед этим фиксирую время. В потоке 2 смотрю, сколько времени прошло с момента HttpSendRequest. Если больше 5-и секунд, то принудительно прерываю поток 1 и затем повторяю запрос.
Правильно рассуждаю, или туплю? Ведь теоретически, HttpSendRequest может подвиснуть, если, скажем, завис на сервере? И еще... Если HttpSendRequest подвис, то параллельно в потоке 2 возможно время считать? Это нужно через Sinhronize как-то делать, или механизм потоков как бы заранее предполагает, что все потоки работают параллельно, в зависимости от их приоритета?
Спасибо заранее, кто подскажет. |