2013-03-19 60 views
1

是否需要“Process.Close()”?当我使用过程

var startInfo = process.StartInfo; 
startInfo.FileName = @"C:\cxecute.exe"; 
startInfo.WindowStyle = ProcessWindowStyle.Hidden; 

process.Start(); 

是有必要使用process.close?

+0

这取决于....你定义什么必要 – apomene 2013-03-19 15:31:08

+0

我认为,这个问题要问你。如果有必要的话,你必须关闭,否则这个过程就会过着它的生活。 – 2013-03-19 15:32:00

+0

该文档说['''Process.Close()''](http://msdn.microsoft.com/en-gb/library/system.diagnostics.process.close.aspx)将释放资源 – 2013-03-19 15:34:56

回答

3

Process类型确实包含通过调用Close释放的资源,它实现了IDisposable。因此,应该像对待任何其他IDisposable对象一样对待它,并在完成使用时调用Dispose

虽然未能调用Dispose不会引起使用Process对象的任何直接问题。它不是像FileStream那样未能调用Close可以通过同一个文件阻止其他FileStream实例。这就是说,你应该仍然打电话给Close

+0

,假设这个过程是一个赢的形式,'process.close'的影响是什么? – 2013-03-19 15:51:48

+0

@AssafZigdon没什么。它不会阻止有关进程。它只是关闭你的应用程序中的资源。 – JaredPar 2013-03-19 15:54:50

+0

可以让我的代码没有process.close或process.dispose吗? – 2013-03-19 15:57:03

0

处理实现IDisposable。进程分配的Free resource更好。

Process.Close() - 释放与此组件关联的所有资源。

所以,是的,如果过程中必须Closed/Disposed

+0

假设这个过程是一个赢的形式,'process.close'的影响是什么?作为'JaredPar'说的 – 2013-03-19 15:52:32

+0

说:'调用关闭不会导致任何使用Process对象的直接问题。 ' – 2013-03-19 15:54:59

相关问题