【发布时间】:2013-08-10 13:18:34
【问题描述】:
我有一个用 C# 编写的 WPF 应用程序,当某些事件发生并且应用程序需要关闭时,我正在使用 TerminateProcess()
我不知道为什么,但我看到调用它时偶尔会出现一个 Watson 对话框?这不是 100%
这是例外吗?我传递了一个非 0 结果代码?
为什么 Watson 突然出现,我认为这将是一个无声的退出?
[DllImport("kernel32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
private static extern bool TerminateProcess(IntPtr hProcess, uint uExitCode);
[DllImport("kernel32.dll")]
private static extern IntPtr GetCurrentProcess();
TerminateProcess(GetCurrentProcess(), 2); <-- this is whats triggering Watson (sometimes)
【问题讨论】:
-
“偶然”有多偶然?
-
这种harikiri 已经内置在.NET 中,请改用Environment.Exit 或FailFast。很难猜测这是否会有所作为。可能与to this 有关