Verwendung asynchroner Aufgaben und paralleler Computertechnologie in C#

WBOY
Freigeben: 2023-10-09 21:28:59
Original
1211 Leute haben es durchsucht

Verwendung asynchroner Aufgaben und paralleler Computertechnologie in C#

So nutzen Sie asynchrone Aufgaben und Parallel-Computing-Technologie in C#

Einführung:
In der heutigen Softwareentwicklung standen Effizienz- und Leistungsprobleme schon immer im Fokus der Entwickler. Um die Reaktionsgeschwindigkeit von Anwendungen und die Effizienz bei der Erledigung komplexer Aufgaben zu verbessern, bietet C# asynchrone Aufgaben und parallele Rechentechnologie. In diesem Artikel wird die Verwendung asynchroner Aufgaben und paralleler Rechentechnologie in C# ausführlich vorgestellt und spezifische Codebeispiele bereitgestellt.

1. Asynchrone Aufgaben
1.1 Übersicht
Asynchrone Aufgaben beziehen sich auf Aufgaben, die im Hintergrund ausgeführt werden können, wodurch die Anwendungsschnittstelle reaktionsfähig bleibt und die Leistung des Programms verbessert wird. In C# können asynchrone Aufgaben mithilfe der Schlüsselwörter „async“ und „await“ implementiert werden.

1.2 Asynchrone Methoden
Asynchrone Methoden in C# beziehen sich auf Methoden mit dem Schlüsselwortmodifikator async. Die geänderte Methode kann einen oder mehrere Warteausdrücke enthalten. Verwenden Sie in einer asynchronen Methode das Schlüsselwort „await“, um auf den Abschluss eines asynchronen Vorgangs zu warten, während andere Aufgaben während des Wartens weiter ausgeführt werden können.

1.3 Schritte zur Verwendung asynchroner Aufgaben
Im Folgenden sind die grundlegenden Schritte zur Verwendung asynchroner Aufgaben aufgeführt:
1) Deklarieren Sie eine asynchrone Methode und ändern Sie sie mit dem Schlüsselwort async.
2) Verwenden Sie das Schlüsselwort „await“ in einer asynchronen Methode, um auf den Abschluss des asynchronen Vorgangs zu warten.
3) Wenn Sie eine asynchrone Methode aufrufen, verwenden Sie das Schlüsselwort „await“, um das asynchrone Ergebnis zu erhalten.

1.4 Beispiel
Das Folgende ist ein einfaches Beispiel, das eine asynchrone Aufgabe verwendet, um den Prozess des asynchronen Herunterladens von Dateien zu demonstrieren.

using System;
using System.Net;
using System.Threading.Tasks;

class Program
{
    static void Main()
    {
        DownloadFileAsync("https://www.example.com/file.txt").Wait();
        Console.WriteLine("文件下载完成!");
    }

    static async Task DownloadFileAsync(string url)
    {
        using (var client = new WebClient())
        {
            await client.DownloadFileTaskAsync(new Uri(url), "file.txt");
        }
    }
}
Nach dem Login kopieren

Im obigen Beispiel wird der Prozess des Herunterladens der Datei durch die Verwendung der Schlüsselwörter „async“ und „await“ asynchron ausgeführt, und während des Wartevorgangs bleibt die Anwendungsschnittstelle reaktionsfähig.

2. Parallel-Computing-Technologie
2.1 Überblick
Parallel-Computing-Technologie bezieht sich auf die Technologie, die eine große Aufgabe in mehrere kleine Aufgaben zur parallelen Ausführung zerlegt. In C# können Sie die Parallel-Klasse und PLINQ verwenden, um paralleles Rechnen zu implementieren.

2.2 Parallelklasse
Die Parallelklasse ist eine statische Klasse, die eine Reihe von Methoden zum parallelen Ausführen von Aufgaben bereitstellt. Durch die Parallel-Klasse kann die parallele Ausführung mehrerer Aufgaben problemlos erreicht werden.

2.3 PLINQ
PLINQ (Parallel LINQ) bezieht sich auf LINQ-Abfragen, die parallel ausgeführt werden können. Durch PLINQ können parallele Abfragen und Verarbeitungen von Sammlungen schnell realisiert werden.

2.4 Schritte zur Verwendung von Parallel Computing
Im Folgenden sind die grundlegenden Schritte zur Verwendung von Parallel Computing aufgeführt:
1) Je nach Art der Aufgabe entscheiden Sie sich für die Verwendung der Parallel-Klasse oder von PLINQ, um Parallel Computing zu implementieren.
2) Teilen Sie Aufgaben in kleinere Aufgaben auf.
3) Verwenden Sie parallele Klassenmethoden oder PLINQ, um Aufgaben auf mehreren Prozessoren gleichzeitig auszuführen.
4) Führen Sie die Ergebnisse paralleler Berechnungen zusammen.

2.5 Beispiel
Das Folgende ist ein Beispiel für die Berechnung von Primzahlen mithilfe paralleler Rechentechniken.

using System;
using System.Linq;

class Program
{
    static void Main()
    {
        var primes = Enumerable.Range(2, 1000000)
                              .AsParallel()
                              .Where(n => Enumerable.Range(2, (int)Math.Sqrt(n) - 1)
                                                   .All(i => n % i != 0));

        Console.WriteLine("1到1000000之间的素数个数:{0}", primes.Count());
    }
}
Nach dem Login kopieren

Im obigen Beispiel kann durch die Verwendung der AsParallel-Methode zum Konvertieren der Abfrage in eine parallele Abfrage der Prozess der Berechnung von Primzahlen gleichzeitig auf mehreren Prozessoren ausgeführt werden, wodurch die Effizienz der Berechnung verbessert wird.

Fazit:
Dieser Artikel beschreibt die Verwendung asynchroner Aufgaben und paralleler Rechentechnologie in C# und bietet spezifische Codebeispiele. Durch den Einsatz asynchroner Aufgaben und paralleler Rechentechnologie können die Reaktionsgeschwindigkeit und Recheneffizienz der Anwendung sowie die Leistung des Programms verbessert werden.

Referenz:
Microsoft Docs (2021). Abgerufen von https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/ . (2021). Anleitung: Schreiben einer parallelen foreach-Schleife in Visual C# -foreach-loop-with-break

Das obige ist der detaillierte Inhalt vonVerwendung asynchroner Aufgaben und paralleler Computertechnologie in C#. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage