2013-03-19 59 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

相關問題