Nur weil das Async Pattern viel Overhead erzeugt, denke ich nicht, dass das ein Gerund ist zu sagen, es seijvbsl schrieb:
Wenn du mit "leistungsfähiger" unperformanter meinst, dann stimmt das
unperformanter
. (IMHO)Und vor allem leichter zu durchsteigen. Für Anfänger oder Programmierer, die sich in das Threading oder vielmehr Nebenläufige Programmierung einarbeiten finde ich das Async Pattern einen einfacheren Einstieg, als das klassische Threading.ErfinderDesRades schrieb:
unter Verwendung des Async-Patterns deutlich eleganter versorgen als "mit Threads"
- Aufzurufende Methode/Function mit
async
markieren (und ggf. Rückgabewert Task<T> angeben) - Im Aufruf ein await davor schalten um kein
Fire and Forget
zu erzeugen - Fertig
- Delegaten erzeugen (Auf Parameter und Rückgabewerte achten)
- Thread mit Delegaten aufrufen
- Auf Threadpool zurückgreifen (wenn man es "gescheit" machen will)
- Threads managen (warten, pollen und beenden)
Jedoch wirst du zustimmen, dass sowas für das im Einstiegspost beschriebene Problem doch etwas oversized ist oder?jvbsl schrieb:
Und über MemoryTracer. denn async macht gerne Heap Allocs
Lg Radinator
In general (across programming languages), a pointer is a number that represents a physical location in memory. A nullpointer is (almost always) one that points to 0, and is widely recognized as "not pointing to anything". Since systems have different amounts of supported memory, it doesn't always take the same number of bytes to hold that number, so we call a "native size integer" one that can hold a pointer on any particular system. - Sam Harwell