Neu in .NET 6 [10]: Ergänzungen in System.Environment
Die Serie zu den Neuerungen in .NET 6 behandelt im zehnten Teil den Zugang zu Informationen ĂĽber laufende Prozesse.
- Dr. Holger Schwichtenberg
Die Serie zu den Neuerungen in .NET 6 behandelt im zehnten Teil den Zugang zu Informationen ĂĽber laufende Prozesse.
Die statische Klasse System.Environment
gehört zum Urgestein in .NET: Sie existiert seit dem .NET Framework 1.0 aus dem Jahr 2002. Nun in .NET 6 hat Microsoft in diese Klasse zwei neue statische Eigenschaften aufgenommen:
Environment.ProcessId
liefert die Prozess-Identifikationsnummer des aktuellen Prozesses.Environment.ProcessPath
liefert den Pfad zur ausfĂĽhrbaren Datei, die den Prozess gestartet hat.
Alte .NET-Hasen wissen, dass man diese Informationen auch bisher schon aus der .NET-Basisklassenbibliothek bekommen konnte aus der Klasse System.Diagnostics.Process
:
System.Diagnostics.Process p = Process.GetCurrentProcess();
Console.WriteLine(p.Id);
Console.WriteLine(p.MainModule.FileName);
Der neue Weg ist aber effizienter, weil die Implementierungen der beiden neuen Properties direkt Betriebssystem-APIs abfragen – ohne den Zusätzliche Overhead über die Klassen System.Diagnostics.Process
. Das kann man sich im Quellcode auf GitHub ansehen, in Verbindung mit der Windows-Implememtierung und der Unix-Implementierung mit der zugehörigen Umsetzung von Interop. Hintergründe findet man in der Diskussion zu Issue #40862.
()