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

Wie kann ich parallele asynchrone Aufgaben in .NET 4.5 effizient ausführen?

Linda Hamilton
Linda HamiltonOriginal
2025-01-13 12:09:43969Durchsuche

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

Optimierung paralleler asynchroner Vorgänge in .NET 4.5

.NET 4.5 bietet robuste asynchrone Programmierfunktionen für die gleichzeitige Ausführung mehrerer langwieriger Aufgaben. Einige anfängliche Implementierungen können jedoch übermäßig komplex erscheinen und es fehlt ihnen die Eleganz, die asynchronen Methoden innewohnt. Dieses verbesserte Beispiel behebt diese Mängel.

Erweiterte Codestruktur

Der folgende verfeinerte Code bietet einen effizienteren und optimierten Ansatz:

<code class="language-csharp">async Task GoAsync()
{
    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 async Task<int> SleepAsync(int milliseconds)
{
    Console.WriteLine($"Sleeping for {milliseconds} ms");

    try
    {
        await Task.Delay(milliseconds);
        return milliseconds;
    }
    finally
    {
        Console.WriteLine($"Sleep for {milliseconds} ms COMPLETE");
    }
}</code>

Wichtige Verbesserungen:

  • GoAsync ist jetzt eine asynchrone Methode (async Task), die die Verwendung von await zum Verwalten der Aufgabenerledigung ermöglicht.
  • SleepAsync ist eine asynchrone Methode, die Task<int> zurückgibt und die asynchrone Natur des Vorgangs widerspiegelt.
  • Task.WhenAll wartet effizient auf die gleichzeitige Erledigung beider Aufgaben, wodurch die Notwendigkeit eines expliziten .Result Zugriffs entfällt und die Leistung verbessert wird.

Funktionscode:

Dieser überarbeitete Code führt beide Aufgaben gleichzeitig aus und sammelt so effektiv Ergebnisse. Diese Methode bietet eine sauberere, präzisere und effizientere Lösung für die parallele asynchrone Aufgabenausführung in .NET 4.5.

Das obige ist der detaillierte Inhalt vonWie kann ich parallele asynchrone Aufgaben in .NET 4.5 effizient ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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