|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
16.05.2010, 17:02 | #1 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
Ограничение времени выполнения кода
Возможно ли ограничить время выполнения определенного куска кода программы? И если код не уложился в установленное время совершаем определенное действие.
|
16.05.2010, 18:03 | #2 |
Форумчанин
Регистрация: 28.03.2008
Сообщений: 940
|
var
TimeT: integer; begin TimeT := GetTickCount; {Ваш код} if GetTickCount - TimeT > 5000 then ShowMessage('Код выполнялся больше 5 сек'); end; |
16.05.2010, 22:55 | #3 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
W0LF, я думаю, что автору топика чуть другого хочется - если код выполняется дольше заданного - запустить процедуру ВО ВРЕМЯ выполнения "медленной" процедуры...
думаю, что надо копать в сторону. 1) критичный код запустить в отдельном потоке (это на случай, если его надо прервать. Если же прерывание кода "медленной процедуры" не планируется, можно и в основном потоке оставить... 2) повесить таймер с нужным временем. На нём "повесить" процедуру, которая должна выполниться, если тестируемый код "припозднился"... 3) Код:
Последний раз редактировалось Serge_Bliznykov; 16.05.2010 в 22:57. |
16.06.2010, 02:21 | #4 | ||
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
Цитата:
Цитата:
|
||
16.06.2010, 10:07 | #5 |
Экспериментатор
Форумчанин
Регистрация: 16.04.2008
Сообщений: 218
|
А пусть лучше этот код сам себя прерывает, а? Что это за код? Там цикл есть? Пусть он при каждой итерации проверяет наш GetTickCount и в случае чего - Break, Exit или в крайнем случае - GoTo
Да и вообще, если мы его выполнение таймером прервём, потом к этому коду всё равно управление вернётся, так что он по-любому должен сам себя прерывать.
Для создания сложных вещей не нужны сложные интерфейсы. (с) Линус Торвальдс
|
16.06.2010, 12:37 | #6 | |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
Цитата:
|
|
16.06.2010, 15:13 | #7 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,528
|
Цитата:
линейный поток вычислений (это же сколько строк кода надо чтобы долго вычислялось).
программа — запись алгоритма на языке понятном транслятору
|
|
16.06.2010, 16:20 | #8 |
я получил эту роль
Старожил
Регистрация: 25.05.2007
Сообщений: 3,694
|
На скорую руку. Предполагается, что вместо бесконечного цика какой-то подвисший процесс.
Код:
пыщь
Последний раз редактировалось JTG; 16.06.2010 в 16:22. |
16.06.2010, 16:24 | #9 |
Старожил
Регистрация: 04.02.2009
Сообщений: 17,351
|
Я бы тоже на сторожевой таймер повесил .
Маньяк-самоучка
Utkin появился в результате деления на нуль. Осторожно! Альтернативная логика |
16.06.2010, 19:52 | #10 |
Форумчанин
Регистрация: 05.04.2010
Сообщений: 273
|
Суть в том что описанный выше код весь на потоках, а с многопоточностью я не в ладах) у меня все идет в основном потоке и через заднее место, но суть в том что в моем случае больше 1го потока и не требуется.
Я сделал так: Код:
Код:
Код:
Заранее благодарен. Последний раз редактировалось Crystallon; 16.06.2010 в 19:56. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Ограничение компьютера по времени использования | snakesoftware | Безопасность, Шифрование | 3 | 03.05.2010 14:44 |
Распределения работы по рабочим, по времени выполнения. | Rhamzes | Microsoft Office Excel | 3 | 01.07.2009 15:04 |
Измерение времени выполнения цикла | Alexcomeback | Общие вопросы C/C++ | 10 | 25.04.2009 16:58 |
ограничение по времени | bunner | Помощь студентам | 4 | 05.02.2009 21:31 |
оптимизация для меньшения времени выполнения | Ganmaker | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 19.11.2008 17:33 |