В С# class Process наследуется от class Component, который реализует IDisposable, и поэтому я могу вызвать Dispose() для любого объекта Process. Неужели мне это нужно? Как узнать, действительно ли мне нужно?
Предположим, что у меня есть следующий код:
var allProcesses = System.Diagnostics.Process.GetProcesses();
var processesNames = processes.Select( p => p.ProcessName );
// output process names here
Теперь похоже, что у меня есть массив объектов Process, и у меня есть craft try-finally для перемещения массива и Dispose() к каждому объекту. Это определенно много дополнительного кода.
Что делает Dispose() для объектов Process? Мне действительно нужно Dispose() каждый объект Process и как я могу решить, нужно ли мне это делать?