|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
01.08.2015, 19:04 | #1 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
Остановка потока
Всех приветствую, я запускаю поток, в случае если он не производит свои действия я его останавливаю, в try except пишу exit
Далее таймером проверяю давно ли он произвел нужное мне действие, если да то, запускаю его снова, но перед этим хочу его остановить... ну на всякий случай Код:
Вообще не понимаю почему поток завершает свою работу спустя 5-30 минут, никаких исключений быть не должно, а если и есть они обрабатываются... Последний раз редактировалось vipok72; 01.08.2015 в 19:23. |
01.08.2015, 19:42 | #2 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Смотри, у тебя получается оригинальная реализация: Ты создаешь поток, стартуешь его сразу. Далее поток параллельно выполняется, и во время его выполнения ты вызываешь для него Free. Это выглядит как если бы я зашел в макдональдс, заказал бургер, а чтоб оффективнее шевелились пока готовится бургер из РПГ пульнул в повара, стоящего у плиты.
I'm learning to live...
|
||
01.08.2015, 20:01 | #3 |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
|
01.08.2015, 20:50 | #4 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Цитата:
Если хочу завершить пишу следующий код: Код:
Код:
Но все зависит от того, на кой черт этакий ручной тормоз понадобился.
I'm learning to live...
|
||
01.08.2015, 22:49 | #5 | |
Пользователь
Регистрация: 26.07.2015
Сообщений: 59
|
У меня идет скачивание страниц одного сайта, для парсинга, по неизвестной причине, иногда поток перестает работать, но сие чудо в бесконечном цикле while который работает примерно так, как вы описали и можно подобным образом завершить его работу, бывает что поток перестает работать и мне нужно его перезапустить из вне, а не завершить поток внутри и запустить из вне, как я понял можно сделать так:
Код:
Я так понял если просто присвоить ему значение true и в случае непредвиденной ошибки с помощью exit завершить поток потом запустить его снова - будет все норм? Цитата с одного форума: Цитата:
Последний раз редактировалось vipok72; 01.08.2015 в 23:12. |
|
01.08.2015, 23:17 | #6 | ||
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
Цитата:
Перезапуск потока можно достичь пересозданием потока. Но тогда полюбому нужно послать потоку сигнал завершения, и подождать пока он завершится. Цитата:
I'm learning to live...
|
||
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как получить доступ к методу потока(TThread) из основного потока? | Pcrepair | Общие вопросы Delphi | 3 | 30.03.2013 14:52 |
Должно быть 3 потока. А диспетчер задач показывает, что потока создано 2 | BEL9ILLI | Общие вопросы Delphi | 3 | 06.12.2011 20:26 |
Как узнать номер потока из самого потока? | GaMeSTeR | Помощь студентам | 0 | 03.12.2010 09:50 |
Немедленная остановка потока. | Altera | Общие вопросы Delphi | 16 | 07.02.2009 11:17 |
Управление потоками. Запуск, остановка, приоритет потока. | metamfetamin | Помощь студентам | 5 | 11.11.2007 12:45 |