Мы запускаем консольное приложение С#, которое запускает несколько потоков для работы. Основная функция выглядит примерно так:
try
{
DoWork();
}
catch (Exception err)
{
Logging.Log("Exception " + err.ToString());
}
Logging.Log("Finished");
Функция DoWork()
считывает новые задания из базы данных и порождает потоки для обработки одного рабочего элемента каждый. С прошлой недели приложение запустилось загадочно. Он исчезает из списка процессов и в журналах событий нет записи. Файл журнала показывает работу до определенной точки: он не регистрирует исключение или строку "Готово".
Любая подсказка о том, как приложение С# может обращаться в нуль?
EDIT: Темы создаются как:
new Thread(SomeObj.StartFunc).Start();
Некоторые из исчезновений возникают, когда нитки не работают.
P.S. Мы установили DebugDiag с правилом создания аварийного дампа всякий раз, когда наша программа разбилась. Он не создавал файлы дампа, когда процесс исчез.