W języku C# class Process
dziedziczy po class Component
, który implementuje IDisposable
, dzięki czemu można wywołać Dispose()
na dowolnym obiekcie Process
. Czy naprawdę muszę? Skąd mam wiedzieć, czy naprawdę muszę?Co właściwie robi funkcja Process.Dispose()?
Załóżmy, że mam następujący kod:
var allProcesses = System.Diagnostics.Process.GetProcesses();
var processesNames = processes.Select(p => p.ProcessName);
// output process names here
Teraz wygląda na to, mam tablicę Process
obiektów i muszę spreparować try-finally
przemierzać tablicy i Dispose()
każdego obiektu. To z pewnością dużo dodatkowego kodu.
Co robi ta Dispose()
dla obiektów Process
? Czy naprawdę muszę do Dispose()
co obiekt Process
i jak zdecydować, czy muszę to zrobić?
czas odbłyśnika? –