Process.Close()和Process.Dispose()之间有什么区别?

Min*_*yen 4 c# process

我开始Process然后我想确保它将被正确关闭.我曾经习惯Process.Close()关闭它,但有时它仍然锁定了资源.我可以看到我们有Process.Dispose()方法.我只是想知道它们之间的实际差异是什么,我是否应该将它们都称为确保流程将被关闭?

p.Dispose();
p.Close();
Run Code Online (Sandbox Code Playgroud)

Son*_*nül 6

来自文件Process.Close() ;

Dispose方法调用Close.将Process对象放置在using中可以在不需要调用的情况下处理资源Close.

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

如果你看参考源 ;

public void Close()
{
      ...        
      m_processHandle.Close();
      ...
}
Run Code Online (Sandbox Code Playgroud)

并且这个方法调用 ;

public void Close() {
    Dispose(true);
}
Run Code Online (Sandbox Code Playgroud)

您应该始终usingProcess对象使用statement .它允许尽早清理资源,因此您无需等到它们收集垃圾.