我启动一个进程
,然后我想确保它将正确关闭。我已经使用 Process.Close() 来关闭它,但有时它仍然锁定资源。我可以看到我们有 Process.Dispose() 方法。我只是想知道它们之间的实际差异是什么,我是否应该同时调用它们以确保该流程将关闭?
p.Dispose();
p.Close();
最佳答案
来自documentation of Process.Close()
;
The
Dispose
method callsClose
. Placing theProcess
object in ausing
block disposes of resources without the need to callClose
.
这意味着,没有区别。据我所知,在内部,.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/