Die Auswahl der Aufgabe.Run und Async-Acait in WPF-Anwendungen: Architekturüberlegungen
In WPF-Anwendungen verwenden Sie Task.run oder Async-Acait, insbesondere wenn ein Stand in der Benutzeroberfläche vorhanden ist, es ist ein häufiges Problem. Um dieses Problem zu lösen, müssen die folgenden Faktoren berücksichtigt werden:
<.> 1. UI -Threadblock:
Async-Acait wird nicht im Hintergrundfaden durchgeführt. Wenn es sich bei dem Wartebetrieb um eine CPU -intensive Aufgabe handelt, kann die UI festgefahren werden. Um dies zu verhindern, verwenden Sie Task.run, um solche Aufgaben dem Hintergrund -Thread anzuvertrauen.
<.> 2. Thread -Effizienzoptimierung:
Task.run verwenden, um den äußersten asynchronen Aufruf zu verpacken, um den Thread -Overhead des .NET zu reduzieren. Dies stellt sicher, dass alle nachfolgenden asynchronen-erwarteten Operationen im Anruf auf dem Hintergrund-Thread ausgeführt werden. <.> 3. Code und CPU -dichte Methode:
Vermeiden Sie die Verwendung von Task.run im wiederverwendbaren Code. Verwenden Sie stattdessen Task.run, um die CPU -intensive Methode aufzurufen und ihre CPU -intensiven Eigenschaften in der Methodensignatur klar zu erklären. Diese Trennung ermöglicht es, flexibel wiederverwendete Komponenten ohne die Effizienz des Hintergrunds zu beeinflussen.
UI -Thread -Optimierung Best Practice:
Befolgen Sie zusätzlich zur Verwendung von Task.Run die folgenden Kriterien, um den schnellen UI -Thread beizubehalten:
Halten Sie den UI -Fadenbetrieb innerhalb von 50 Millisekunden, um zu vermeiden.
Begrenzen Sie die Fortsetzung des UI -Threads etwa 100 Mal pro Sekunde.Verwenden Sie ConfigureAwait (False), um die Leistung bei der Wiederherstellung der Wartezugänge im UI -Thread zu optimieren.
Das obige ist der detaillierte Inhalt vonTask.run vs. async-erwartet in WPF: Wann sollte ich die für eine optimale UI-Leistung verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!