У меня довольно большой проект, который совсем недавно начал падать при выходе. Я не лучший C # кодер, но все, как правило, работает как задумано. В этом случае, однако, когда я закрываю консольное приложение, оно падает, но не отлавливается отладчиком MSVC.
1) Когда я собираю его в Release и запускаю, он обычно всегда вылетает при выходе.
2) Когда я собираю его в Debug и запускаю его, он кажется, что происходит сбой только при выходе из 1 из 3-5 раз.
Мне все-таки удалось получить ошибку, когда она не вышла должным образом, но, к сожалению, код выхода не совпадает с тем, что я могу найти в Интернете.
The program '[11108] MCDaemon.vshost.exe: Managed (v4.0.30319)' has exited with code -1073741510 (0xc000013a).
Из того, что я прочитал на вопросы других людей, это обычно вызвано тем, что неуправляемый код действует. Можно ли как-то узнать, в чем проблема, если не считать огромное количество строк отладки?
EDIT
Из приведенного ниже ответа это код, вызывающий код выхода, но я не вижу в этом ничего особенного.
public static Boolean Handler(MyWin32.CtrlTypes CtrlType)
{
// A switch to handle the event type.
switch (CtrlType)
{
case MyWin32.CtrlTypes.CTRL_C_EVENT:
Program.TerminateProcess();
break;
case MyWin32.CtrlTypes.CTRL_CLOSE_EVENT:
Program.TerminateProcess();
break;
}
return true;
}
public static void TerminateProcess()
{
// Stop the Poll Timer from Running
PollTimer.Stop();
log.LogMessage("Process is being Shutdown.");
log.LogMessage("Requesting Process to Stop....");
SendProcessCmd("stop");
// Wait and make sure it has exited
Thread.Sleep(5000);
if (!myProcess.HasExited)
{
log.LogMessage("My Process did not stop on its own, forcing Process to quit.");
myProcess.Kill();
}
log.LogMessage("My Process has been Shutdown.");
}