учитывая что ТС вообще дупля не отбивает что такое программирование (даже на уровне копипаст+доделать под себя), а читать литературу ленится то гадать можно долго
Наверное первое, чтобы я мог посоветовать это писать код красиво, для дальнейшего нормального его разбора. А второе как выше было уже сказано посмотреть где ошибка, через отладку и получить ответ на свой вопрос. Поставить бряк и по шагам отладить в один поток или в два не составит я думаю труда.
в багато-поточних покрокове виконання далеко не завжди допомагає (може вибити помилку на 2+2 якщо в цей час якийсь поток щось не то зробив)
Логирование - наше всё. Можно отследить где, когда и почему умер поток. _____________________________________ т.к. большинство пользователей все-же русскоязычные, не могли бы Вы переходить на русский язык? боюсь могут возникнуть проблемы с пониманием некоторых слов и фраз в целом. а гуглтранслейт обычно коряво переводит
не всегда... если есть например 15 рядков... на каждій try except ставить? правда ’странніе’ ошибкі бівают в основном в двух случиях: 1) залез в чужой участок памяти (Arr[Length(Arr)]:=232) 2) обращаешса к форме без синронизации (у меня біло такое... долго искал почему на рядку a:=b поднимает исключения) у меня писмений руский как у грузина(
может подойдот для примера: http://pastebin.ubuntu.com/794388/ часть кода моего спамера (Execute не дописан) ... может архитектура кому будет интересна ... основная идея: 1) менеджер потоков 2) входные данные при создании потока 3) пока жду загрузки данных из нета проверяю fTerminate менеджера (простое поле можно читать без синхронизации) 4) исходные данные через запись в логи (да "логи" - не удачное название...) менеджера. (а сам лог (TList<T>) генерирует событие)
зачем на каждый try..except? допустим Code: var LogMessage:string; begin try LogMessage:=('Делаем a'); a; LogMessage:=('Делаем b'); b; LogMessage:=('Делаем c'); c LogMessage:=('Делаем d'); d LogMessage:=('Делаем e'); e LogMessage:=('Делаем f'); f except Log('Ошибка при... '+LogMessage); end; end; при чем a,b,c,d,e - могут быть участки кода, а не просто 1 строка так можно локализовать ошибку если простая трассировка не помогает если ошибка возникает периодически, то в лог записать все текущие значения переменных и т.п. на которые есть подозрения потом оставляете работать на некоторое время и видите в чем причина