Heim > Backend-Entwicklung > C++ > Wie kann ich mit .NET 4.5 effizient mehrere asynchrone Aufgaben parallel ausführen?

Wie kann ich mit .NET 4.5 effizient mehrere asynchrone Aufgaben parallel ausführen?

Mary-Kate Olsen
Freigeben: 2025-01-13 06:27:41
Original
939 Leute haben es durchsucht

How Can I Efficiently Run Multiple Async Tasks in Parallel using .NET 4.5?

Effiziente parallele asynchrone Aufgabenausführung in .NET 4.5

.NET 4.5 stellt Herausforderungen bei der Verwaltung gleichzeitiger, lang andauernder Aufgaben dar. Obwohl Task.Run() einen grundlegenden Ansatz bietet, mangelt es ihm an der Effizienz und Eleganz einer vollständigen Nutzung asynchroner Funktionen.

Eine überlegene Lösung nutzt async/await, um wirklich asynchrone Sleep Methoden zu erstellen, die Unterbrechungen und eine effiziente Wiederaufnahme ermöglichen. Task.WhenAll()wartet gleichzeitig auf den Abschluss mehrerer Aufgaben.

Verbessertes Codebeispiel:

<code class="language-csharp">public static async Task Go()
{
    Console.WriteLine("Initiating tasks");

    Task<int> task1 = SleepAsync(5000);
    Task<int> task2 = SleepAsync(3000);

    await Task.WhenAll(task1, task2);

    int totalSleepTime = task1.Result + task2.Result;

    Console.WriteLine($"Total sleep time: {totalSleepTime} ms");
}

private static async Task<int> SleepAsync(int ms)
{
    Console.WriteLine($"Sleeping for {ms} ms");
    await Task.Delay(ms);
    Console.WriteLine($"Sleep of {ms} ms COMPLETE");
    return ms;
}</code>
Nach dem Login kopieren

Dieser erweiterte Code verwendet async und Task.Delay() für nicht blockierende Verzögerungen innerhalb von SleepAsync. Go initiiert beide Aufgaben gleichzeitig über Task.WhenAll() und ermöglicht so die parallele Ausführung. Nach Abschluss wird über die Eigenschaft Result auf die Ergebnisse zugegriffen.

Das obige ist der detaillierte Inhalt vonWie kann ich mit .NET 4.5 effizient mehrere asynchrone Aufgaben parallel ausführen?. 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