在我的代码中,当发生以下任一情况时,我需要调用Process.Kill()
declared in MSDN投掷Win32Exception
有时我确实面对Win32Exception
消息Access is denied
并且NativeErrorCode
设置为5. MSDN表示当进程终止时调用Kill()
时会发生此组合。其他两个案例没有记录在这些细节中。
所以我需要合理地处理这种情况。当然我可以抓住Win32Exception
,但我怎么知道究竟是为什么抛出它?如果进程已经终止并且可能在所有其他情况下重新抛出异常,我就不需要做任何事情。
如何识别和处理此特定情况?
答案 0 :(得分:1)
使用命令行C#终止任务,例如Taskkill / F / IM ExeName.exe。 如果你没有持续杀死任务,那么强迫杀人也无济于事。
更多信息请检查http://www.c-sharpcorner.com/UploadFile/8ea152/kill-process-from-the-command-prompt-in-windows-8/
这里有一个如何在C#中运行命令行的例子 Run Command Prompt Commands
问候
答案 1 :(得分:0)
使用try-catch。如果你问我,这是.NET框架中的设计错误。
或者,使用PInvoke来调用TerminateProcess
。