14.08.2024
asynchrone Programmierung
.NET Runtime async2-Experiment abgeschlossen
Autor: Online Redaktion
![](/img/1/7/6/5/3/9/5/scene121_w320_h200.jpg)
![](/img/1/7/6/5/3/9/5/scene121_w480_h300.jpg)
![](/img/1/7/6/5/3/9/5/scene121_w640_h400.jpg)
dotnetpro
Die .NET-Community hat das Experiment async2 abgeschlossen, das darauf abzielte, die async/await-Implementierung zu verbessern. In einem Artikel fasst Steven Giesel die Ergebnisse zusammen und beleuchtet die neuen Wege für die zukünftige Entwicklung.
Die .NET-Entwicklergemeinschaft hat unlängst das experimentelle Projekt async2 abgeschlossen, das sich intensiv mit der Neugestaltung des asynchronen Programmiermodells in .NET befasst hat. Das Projekt strebte an, die Leistung und Flexibilität der bestehenden async/await-Implementierung zu verbessern. Beginnend mit einer Untersuchung der Möglichkeiten von sogenannten grünen Threads, die leichtgewichtig sind und schnell erstellt werden können, stellte sich bald heraus, dass deren Integration in die bestehende Architektur mit erheblichen Herausforderungen verbunden war.
Die Motivation, mit grünen Threads zu experimentieren, war, die Entwickler von den Lasten der Thread-Verwaltung zu befreien. Doch technische Hürden, wie Komplexität in der Interaktion mit dem existierenden asynchronen Modell und Probleme bei der Interoperabilität mit nativem Codes, führten dazu, dass das Team schnell umdisponierte und das experimentelle Projekt async2 ins Leben rief.
Im Mittelpunkt von async2 steht die Übertragung der asynchronen Programmierung in den Runtime-Bereich. Im Gegensatz zur derzeitigen Implementierung, bei der der Compiler eine Zustandsmaschine generiert, um async-Methoden zu verarbeiten, soll async2 dem Runtime mehr Kontrolle über das asynchrone Verhalten geben. Dies könnte nicht nur die Leistung signifikant verbessern, sondern auch die Komplexität der Fehlerbehandlung verringern.
Ein zentrales Merkmal von async2 ist die geänderte Handhabung des ExecutionContext und dem SynchronizationContext. Im traditionellen Modell wird der SynchronizationContext gesichert und wiederhergestellt, was oft zu Verwirrung bei der Datenübertragung innerhalb asynchroner Abläufe führen kann. Mit async2 wird dieser Mechanismus geändert, sodass der Aufrufer auf Veränderungen zugreifen kann, anstatt diese nur in tiefer liegenden Aufrufen zu sehen. Eine korrekte Verarbeitung dieser Aspekte könnte letztlich zu einer effizienteren Handhabung von Zuständen und einer besseren Performance führen.
Die Ergebnisse der ersten Tests zeigen vielversprechende Ansätze, wenn es darum geht, async2 als mögliche Zukunftslösung innerhalb des .NET-Ökosystems zu etablieren. Trotz der Herausforderungen in Bezug auf die Kompatibilität und die nötige Anpassung für eine reibungslose Integration, blickt die .NET-Community optimistisch auf die Zukunft asynchroner Programmierung. Die Arbeit an async2 ist noch nicht abgeschlossen, und die Zeit wird zeigen, inwieweit diese Neuerungen den Weg für eine leistungsfähigere, flexiblere und benutzerfreundlichere asynchrone Programmierung ebnen werden.
Microsoft Office
Office Add-ins Development Kit für Visual Studio Code
Microsoft hat das Office Add-ins Development Kit für Visual Studio Code als Preview veröffentlicht. Es soll die Einrichtung der Entwicklungsumgebung vereinfachen.
>>
.NET plattformunabhängig
Microsoft spendet das Mono-Projekt an WineHQ
Microsoft hat überraschend das Mono-Projekt an die WineHQ-Organisation übertragen. Diese Entscheidung wirft Fragen auf: Was bedeutet das für die Zukunft von Mono und wie wird es sich auf die .NET-Community auswirken?
>>
JavaScript
Simulation von 20 Millionen Partikeln
In einem spannenden Experiment wird die Leistung von JavaScript auf die Probe gestellt, indem 20 Millionen Partikeln ausschließlich auf der CPU simuliert werden.
>>
Gartner Hype Cycle
Sechs Technologien, die einen transformativen Vorteil bieten
Predictive Analytics und KI-Code-Assistenten gehören zu den Technologien, die CIOs laut Gartner in den nächsten fünf Jahren benötigen werden, um die Innovationslücke zu schließen.
>>