“优雅地”杀死一个进程

时间:2010-08-05 05:29:44

标签: c# .net process kill system.diagnostics

现在我正在使用Process.Kill()来杀死进程。有没有办法,而不是立即杀死它,我可以向进程发送一条消息,指示它关闭,以便它可以优雅地清理和关闭。基本上,我正在寻找仅仅点击右上角的红色X的等价物,我相信它会向请求关闭的应用程序发送消息。

3 个答案:

答案 0 :(得分:31)

如果进程有一个Windows界面(当您引用红色“X”时),则可以尝试Process.CloseMainWindow()。如果失败,您可以回退到Process.Kill()

答案 1 :(得分:5)

杀戮不能优雅,也许你可以发出自杀过程的信号。 对于信令,您有很多选择。

  • SendMessage
  • NamedPipes
  • 命名为Mutex
  • 套接字

答案 2 :(得分:3)

这取决于你要杀的过程。正如Process.Kill的相关页面所述,“Kill是终止没有图形界面的进程的唯一方法。”如果有图形窗口,则按上面的lc回答; Process.CloseMainWindow的功能与您引用的红色X相同。