Comment créer un thread à l’aide de Visual C#

Pour obtenir une version Microsoft Visual Basic .NET de cet article, reportez-vous à la section.
315577 .


Cet article fait référence aux espaces de noms bibliothèque de classes Microsoft.NET Framework suivant :
  • System.Threading


DANS CETTE TÂCHE.

Résumé

Vous pouvez écrire des applications multithread dans Microsoft Visual C# .NET ou dans Microsoft Visual C#. Cet article décrit comment une application Visual C# simple peut créer et gérer des threads.

Retour au début

Configuration requise

La liste suivante met en évidence le matériel recommandé, logiciel, infrastructure réseau et les service packs dont vous avez besoin :
  • Microsoft Windows 2000, Microsoft Windows XP ou Microsoft Windows Server 2003
  • Microsoft Visual C# .NET ou Microsoft Visual C# 2005
Cet article suppose que vous maîtrisez les sujets suivants :
  • Programmation Visual C#
  • Environnement de développement intégré de Visual Studio .NET (IDE) ou l’environnement IDE de Visual Studio 2005
Retour au début

Créer une application Visual C# avec les threads

  1. Démarrez Microsoft Visual Studio .NET, Microsoft Visual Studio 2005 ou Microsoft Visual C# 2005 Express Edition.
  2. Créer un nouveau projet d’Application Windows Visual C# nommé ThreadWinApp.
  3. Ajoutez un contrôle bouton au formulaire. Par défaut, le bouton nommé Button1.
  4. Ajouter un composant ProgressBar à l’écran. Par défaut, la barre de progression est nommée ProgressBar1.
  5. Avec le bouton droit de la forme, puis cliquez sur Afficher le Code.
  6. Ajoutez l’instruction suivante au début du fichier :
    using System.Threading;
  7. Ajouter le Gestionnaire d’événements Click suivant pour
    Button1:
    private void button1_Click(object sender, System.EventArgs e){
    MessageBox.Show("This is the main thread");
    }
  8. Ajoutez la variable suivante à la classe Form1 :
    private Thread trd;
  9. Ajoutez la méthode suivante à la classe Form1 :
    private void ThreadTask(){
    int stp;
    int newval;
    Random rnd=new Random();

    while(true)
    {
    stp=this.progressBar1.Step*rnd.Next(-1,2);
    newval = this.progressBar1.Value + stp;

    if (newval > this.progressBar1.Maximum)
    newval = this.progressBar1.Maximum;
    else if (newval < this.progressBar1.Minimum)
    newval = this.progressBar1.Minimum;

    this.progressBar1.Value = newval;

    Thread.Sleep(100);
    }
    }
    Remarque C’est le code sous-jacent de la thread. Ce code fait une boucle infinie qui aléatoirement incrémente ou décrémente la valeur de
    ProgressBar1et puis attend 100 millisecondes avant de continuer.
  10. Ajoutez le Gestionnaire d’événements Load suivant de Form1. Ce code crée un nouveau thread, rend le thread un thread d’arrière-plan et puis démarre le thread.
    private void Form1_Load(object sender, System.EventArgs e){
    Thread trd = new Thread(new ThreadStart(this.ThreadTask));
    trd.IsBackground = true;
    trd.Start();
    }
Retour au début

Vérifiez que tout fonctionne

  1. Générez et exécutez l’application. Notez que la valeur de
    ProgressBar1 change de manière aléatoire. Il s’agit de la nouvelle thread dans l’opération.
  2. Pour montrer que le thread principal est indépendant du thread qui modifie la valeur de ProgressBar1, cliquez sur le bouton sur le formulaire. Vous recevez une boîte de dialogue avec le message d’erreur suivant :
    This is the main thread
Attente de l’entrée. Notez que la valeur de
ProgressBar1 continue d’être modifié.

Retour au début

Résoudre les problèmes

Dans les applications plus complexes, assurez-vous que vous synchroniserez plusieurs threads lorsque vous accédez à des variables partagées. Pour plus d’informations, consultez l’instruction lock et les rubriques connexes dans la documentation de Visual C# .NET aide en ligne.

Retour au début

Références

Pour plus d’informations, visitez le site Web de Microsoft à l’adresse suivante ou la Documentation du Kit de développement.NET Framework SDK :
Propriétés

ID d'article : 815804 - Dernière mise à jour : 27 janv. 2017 - Révision : 1

Commentaires