簡單的問題:我想使用默認瀏覽器打開一個URL,所以我只是做Process.Start(url)
。但是,我注意到這返回一個IDisposable對象。我是否必須處理Process.Start(url)?
所以現在我想知道我是否必須處置它?或者,就此而言,如果我的應用程序以任何方式對此過程負責?預期的功能只是簡單的「火和遺忘」,我不希望我的應用程序作爲新流程的父項,並且它不需要與它進行交互。
我見過一些類似但不相關的問題,似乎只是簡單地調用URL上的Process.Start是好的,但我不想遇到一些難以調試引起的內存泄漏/資源耗盡問題我的程序保持對長期死亡的瀏覽器進程的引用。
問題是我沒有完全理解這種情況下的對象生活。如果我使用(Process.Start(url));那麼它會在那個時候等待?或者是否會將流程部署到早期?目前,這在行爲上沒有任何區別,所以我認爲沒有任何資源是公開的,但我不確定,我不知道如何衡量。 – 2009-08-06 20:34:10
由於「using」子句隱含地指示編譯器構建try/finally並實現dispose,並且它們返回的是IDisposable對象,所以我認爲您可以安全地執行此操作。通過不分配它,你可能會佔用資源。你可以嘗試構建一個循環,打開幾個URL而不用處理它們,並查看你的資源是否失去控制,並通過將它們包裝在使用子句中進行另一個測試。需要注意的是,之後你會有一堆窗戶關閉。 :) – Fooberichu 2009-08-06 20:49:48