Maison  >  Article  >  développement back-end  >  Comment utiliser les tâches asynchrones et la technologie de calcul parallèle en C#

Comment utiliser les tâches asynchrones et la technologie de calcul parallèle en C#

WBOY
WBOYoriginal
2023-10-09 21:28:591168parcourir

Comment utiliser les tâches asynchrones et la technologie de calcul parallèle en C#

Comment utiliser les tâches asynchrones et la technologie de calcul parallèle en C#

Introduction :
Dans le développement de logiciels d'aujourd'hui, les problèmes d'efficacité et de performances ont toujours été au centre des préoccupations des développeurs. Afin d'améliorer la vitesse de réponse des applications et l'efficacité de l'exécution de tâches complexes, C# propose des tâches asynchrones et une technologie de calcul parallèle. Cet article présentera en détail comment utiliser les tâches asynchrones et la technologie de calcul parallèle en C#, et fournira des exemples de code spécifiques.

1. Tâches asynchrones
1.1 Présentation
Les tâches asynchrones font référence à des tâches qui peuvent être exécutées en arrière-plan, ce qui peut maintenir la réactivité de l'interface de l'application et améliorer les performances du programme. En C#, les tâches asynchrones peuvent être implémentées à l'aide des mots-clés async et wait.

1.2 Méthodes asynchrones
Les méthodes asynchrones en C# font référence aux méthodes avec le modificateur de mot-clé async. La méthode modifiée peut contenir une ou plusieurs expressions d'attente. Dans une méthode asynchrone, utilisez le mot-clé wait pour attendre la fin d'une opération asynchrone, tout en permettant aux autres tâches de continuer à s'exécuter en attendant.

1.3 Étapes pour utiliser des tâches asynchrones
Voici les étapes de base pour utiliser des tâches asynchrones :
1) Déclarez une méthode asynchrone et modifiez-la avec le mot-clé async.
2) Utilisez le mot-clé wait dans la méthode asynchrone pour attendre la fin de l'opération asynchrone.
3) Lors de l'appel d'une méthode asynchrone, utilisez le mot-clé wait pour obtenir le résultat asynchrone.

1.4 Exemple
Ce qui suit est un exemple simple utilisant une tâche asynchrone pour démontrer le processus de téléchargement de fichiers de manière asynchrone.

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");
        }
    }
}

Dans l'exemple ci-dessus, en utilisant les mots-clés async et wait, le processus de téléchargement du fichier est exécuté de manière asynchrone et pendant le processus d'attente, l'interface de l'application reste réactive.

2. Technologie informatique parallèle
2.1 Présentation
La technologie informatique parallèle fait référence à la technologie qui décompose une grande tâche en plusieurs petites tâches pour une exécution parallèle. En C#, vous pouvez utiliser la classe Parallel et PLINQ pour implémenter le calcul parallèle.

2.2 Classe Parallel
La classe Parallel est une classe statique qui fournit une série de méthodes pour exécuter des tâches en parallèle. Grâce à la classe Parallel, l’exécution parallèle de plusieurs tâches peut être facilement réalisée.

2.3 PLINQ
PLINQ (Parallel LINQ) fait référence aux requêtes LINQ qui peuvent être exécutées en parallèle. Grâce à PLINQ, les requêtes et le traitement parallèles des collections peuvent être rapidement réalisés.

2.4 Étapes pour utiliser le calcul parallèle
Voici les étapes de base pour utiliser le calcul parallèle :
1) Selon la nature de la tâche, choisissez d'utiliser la classe Parallel ou PLINQ pour implémenter le calcul parallèle.
2) Décomposez les tâches en tâches plus petites.
3) Utilisez les méthodes de classe Parallel ou PLINQ pour exécuter des tâches sur plusieurs processeurs simultanément.
4) Fusionnez les résultats des calculs parallèles.

2.5 Exemple
Ce qui suit est un exemple de calcul de nombres premiers à l'aide de techniques de calcul parallèle.

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());
    }
}

Dans l'exemple ci-dessus, en utilisant la méthode AsParallel pour convertir la requête en requête parallèle, le processus de calcul des nombres premiers peut être exécuté simultanément sur plusieurs processeurs, améliorant ainsi l'efficacité du calcul.

Conclusion :
Cet article détaille l'utilisation des tâches asynchrones et de la technologie de calcul parallèle en C# et fournit des exemples de code spécifiques. Grâce à l'application de tâches asynchrones et de technologies informatiques parallèles, la vitesse de réponse et l'efficacité informatique de l'application peuvent être améliorées, ainsi que les performances du programme.

Référence :
Microsoft Docs. (2021). Programmation asynchrone avec async et wait Récupéré de https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/concepts/async/
Microsoft Docs. . (2021). Comment : écrire une boucle foreach parallèle dans Visual C# Récupéré de https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/how-to-write-a-parallel. -foreach-boucle-avec-break

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn