|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
10.07.2011, 13:41 | #1 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 105
|
Принудительный выход из процедуры
Доброго времени суток. У меня возникла проблема, которая заключается в том, что надо проверять проверять не остановилась ли процедура, и если она ничего не делает - прерывать ее.
Проблема в следующем. У меня есть процедура, которая выполняется в цикле. Допустим это оправка POST запроса. Код:
Бездействие процедуры могу определять по тому, выводятся ли строки в отчет. То есть если минуту в отчете ничего не пишется - процедура остановилась. Необходимо из нее выйти. Как? |
10.07.2011, 14:05 | #2 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
break - выход из цикла.
continue - переход к след. интерации цикла. exit - выход из процедуры, функции... |
10.07.2011, 16:50 | #3 |
Форумчанин
Регистрация: 26.04.2010
Сообщений: 105
|
Это я знаю, только вопрос в том, как проверять? В таймере? Как из обработчика таймера завершить процедуру? Как из одной процедуры завершить другую?
|
10.07.2011, 17:27 | #4 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,430
|
Пускать ваши процедуры в потоке. И проверять жив или мёрв поток.
А вообще выставить таймаут сединения у idHTTP |
10.07.2011, 19:37 | #5 |
Участник клуба
Регистрация: 29.09.2008
Сообщений: 1,234
|
создать глобальную переменную
Код:
Код:
|
11.07.2011, 00:26 | #6 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Вы в курсе, что каждое убийство потока - это минимум 1 Мб утечки? Добавляем к этому цикл - и ваша память исчерпается ОЧЕНЬ быстро.
Таймауты операций нужно правильно ставить.
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
11.07.2011, 00:27 | #7 |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
|
11.07.2011, 18:20 | #8 | |
кривокодер ;)
Форумчанин
Регистрация: 20.06.2008
Сообщений: 707
|
Цитата:
"А как написать праграму?, "ришыти задачьку очинь нада" ©с форума. Жить становится интереснее, жить становится веселее...
{Быть или не быть} {Неуспешный суицид} |
|
12.07.2011, 03:55 | #9 | |
Старожил
Регистрация: 13.08.2009
Сообщений: 2,581
|
Доки надо читать. Или Рихтера хотя-бы.
TerminateThread: Цитата:
Код:
P.S. Это, кстати, не единственная проблема. В редких случаях уничтожение потока может привести к вечной блокировке. Вот пример (при рассмотрении мысленно замените suspend на terminate - будет то же самое).
Опытный программист на C++ легко решает любые не существующие в Паскале проблемы.
Последний раз редактировалось GunSmoker; 12.07.2011 в 03:57. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Выход из процедуры | mactepmac | Общие вопросы Delphi | 1 | 28.06.2011 06:56 |
Автозагрузка или принудительный запуск | _-Re@l-_ | Общие вопросы Delphi | 19 | 15.01.2011 15:26 |
Word VBA как вставить разрыв принудительный в формулу ? | bdfy | Microsoft Office Word | 13 | 01.12.2010 08:06 |
Не работает выход во внешнию среду из процедуры!!! | Hacker19_90 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 10.11.2008 19:31 |