Здравствуйте! Помогите с такой проблемой. Пишу многопоточное приложение под Linux. Если в потоке возникает исключение, то он завершается, можно ли это как-то исправить.
Исключение в потоках
Исключение в потоках
|
29.12.2009 23:04:17
|
|
|
|
|
|
29.12.2009 23:07:56
А что должно происходить? По-моему все правильно. Возникла исключительная ситуация, поток завершен.
|
|
|
|
|
|
29.12.2009 23:08:38
Можно вести лог сохраняя все в файл. А потом по этому логу отследить, в какой момент возникает исключение
|
|
|
|
|
|
29.12.2009 23:37:56
Мне нужно, чтобы если поток завершится, я мог бы его снова запустить.
Изменено:
Виктор Кузьмин - 29.12.2009 23:41:56
|
|||
|
|
|
|
29.12.2009 23:48:14
Пишите try except и в except обрабатывайте исключительную ситуацию
|
|
|
|
|
|
29.12.2009 23:51:25
А Вы сами так пробовали? У меня не получилось
|
|
|
|
|
|
30.12.2009 00:04:23
Разумеется, я так пробовал, правда, только в windows.
|
|
|
|
|
|
30.12.2009 00:05:15
Хочу сказать, что вообще-то в FPC много недоработок по части исключений. Я тоже не пробовал их использовать в linux, но в windows замечал такие проблемы неоднократно. Поведение может значительно различаться от того системное это исключение или внутренне.
|
|
|
|
|
|
30.12.2009 00:05:59
Можно запомнить TThreadID и периодически проверять его хэндл. Только функцию сейчас не помню. |
|||
|
|
|
|
30.12.2009 00:17:24
А еще можно запомнить TThreadID, а потом в другом потоке использовать WaitForThreadTerminate, дождаться завершения потока и реагировать по ситуации.
|
|
|
|
|
|
30.12.2009 00:20:12
Ааа, все понял. У меня ошибка глупая была. Все исправил, действительно нужно try except использовать.
|
||||
|
|
|
|||
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)