c# - Process.Close() 和 Process.Dispose() 有什么区别?

标签 c# process

我启动一个进程,然后我想确保它将正确关闭。我已经使用 Process.Close() 来关闭它,但有时它仍然锁定资源。我可以看到我们有 Process.Dispose() 方法。我只是想知道它们之间的实际差异是什么,我是否应该同时调用它们以确保该流程将关闭?

p.Dispose();
p.Close();

最佳答案

来自documentation of Process.Close() ;

The Dispose method calls Close. Placing the Process object in a using block disposes of resources without the need to call Close.

这意味着,没有区别。据我所知,在内部,.NET 中的所有 Close 方法都会调用 Dispose 方法。

如果你看reference source ;

public void Close()
{
      ...        
      m_processHandle.Close();
      ...
}

还有这个方法calls ;

public void Close() {
    Dispose(true);
}

您应该始终Process对象使用using语句。它允许及早清理资源,因此您无需等到它们被垃圾回收。

关于c# - Process.Close() 和 Process.Dispose() 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33803017/

相关文章:

c# - 运行新的 google v3 api 应用程序时出错

c# - 使用自定义 IFormatProvider 的 DateTime.ToString() 中月份的第一个字母

c# - 枢轴选择更改时如何在枢轴项目中加载图像后如何加载音频文件

c - 多次从管道读取

android - 为什么在 Intent 重定向代码之后执行代码?

c# - 如何创建一个组件,使 VBA 能够访问我自己正在运行的应用程序?

c# - Cassandra get_range_slice

c - 如何停止 fgets 从 FIFO 文件中读取

linux - 如何在不终止正在运行的作业的情况下终止 GNU parallel?

vb.net - 如何使用 Process.WaitForExit