Non potresti semplicemente avvolgerlo in un using
clausola per garantire che il GC faccia tutto ciò che deve fare con esso SE sei tenuto a smaltirlo? Ciò consentirebbe comunque una sorta di "spara e dimentica" ma non lascerebbe memoria/risorse in cattivo stato.
Probabilmente eccessivo, ma c'è un ottimo articolo su CodeProject sull'interfaccia IDisposable:http://www.codeproject.com/KB/dotnet/idisposable.aspx
No, non lo fai.
void Main()
{
Process result = Process.Start("http://www.google.com");
if (result == null)
{
Console.WriteLine("It returned null");
}
}
Stampe
It returned null
Da Process.Start Method (String) su MSDN (.NET Framework 4):
(In generale, però, il using
istruzione è il modo giusto per lavorare con gli oggetti IDisposable. Fatta eccezione per i client WCF.)
L'avvio del processo è una chiamata nativa che restituisce un handle di processo nativo, archiviato nell'istanza di Process restituita. Esistono metodi in Process che utilizzano l'handle in modo che tu possa eseguire operazioni come attendere l'uscita del processo o diventare inattivo.
L'eliminazione del processo libera quella maniglia. Sono d'accordo con Jon, avvolgilo in una clausola using.