Heim > Backend-Entwicklung > C++ > Wie kann ich asynchrone Methoden aus synchronen Methoden in C#aufrufen?

Wie kann ich asynchrone Methoden aus synchronen Methoden in C#aufrufen?

Susan Sarandon
Freigeben: 2025-02-02 12:41:13
Original
935 Leute haben es durchsucht

How Can I Call Asynchronous Methods from Synchronous Methods in C#?

Aufrufen asynchroner Methode in der Synchronisationsmethode in C#

Asynchronen Methoden in synchronem Code (normalerweise Async -Modifikationssymbol -Logo) aufrufen, ist ein häufiges Entwicklungsproblem. Eine asynchrone Programmierung kann den Betrieb des CEO für eine lange Zeit durchführen, während die UI -Reaktion beibehalten wird. Dies muss jedoch normalerweise die Codestruktur anpassen, die möglicherweise nicht mit der vorhandenen Synchronisationsmethode übereinstimmt.

Plan 1: task.waitandunwrapexception

Wenn die asynchrone Methode (myasyncMedHod) unabhängig ausgeführt werden kann, ohne den Kontext zu synchronisieren, können Sie Task verwenden.

Sie müssen jedoch auf die Verwendung von Task.wait oder Task.Result aufmerksam machen.

Plan 2: asynccontext.runtask
<code class="language-csharp">var task = MyAsyncMethod();
var result = task.WaitAndUnwrapException();</code>
Nach dem Login kopieren

oder, wenn myasyncMedHod mit Kontext synchronisiert werden muss, bietet Asynccontext.runtask eine Methode des verschachtelten Kontexts:

Plan 3: task.run

In einigen Fällen kann Asynccontext.runtask begrenzt sein, wie z. B. asynchrone Methoden, die von UI -Ereignissen abhängen. In diesem Fall kann die asynchrone Methode am Thread -Pool durchgeführt werden:
<code class="language-csharp">var result = AsyncContext.RunTask(MyAsyncMethod).Result;</code>
Nach dem Login kopieren

Bitte beachten Sie, dass diese Methode erfordert, dass MyaSyncMethod mit dem Kontext des Thread -Pools kompatibel sein kann, einschließlich der Einschränkungen für UI -Element -Updates und ASP.NET -Anforderungskontextzugriff.

Das obige ist der detaillierte Inhalt vonWie kann ich asynchrone Methoden aus synchronen Methoden in C#aufrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage