In C# class Process
erbt von class Component
, die IDisposable
implementiert und so kann ich Dispose()
auf jedem Process
Objekt aufrufen. Muss ich wirklich? Woher weiß ich, ob ich wirklich muss?Was macht Process.Dispose() eigentlich?
Angenommen, ich habe den folgenden Code:
var allProcesses = System.Diagnostics.Process.GetProcesses();
var processesNames = processes.Select(p => p.ProcessName);
// output process names here
Jetzt sieht es aus wie ich ein Array von Process
Objekte haben, und ich habe Handwerk eine try-finally
das Array und Dispose()
jedes Objekt zu durchqueren. Das ist definitiv viel extra Code.
Was macht das Dispose()
für Process
Objekte? Muss ich wirklich Dispose()
alle Process
Objekt und wie entscheide ich, ob ich dies tun muss?
Reflektorzeit? –