Thread.Start Méthode

Définition

Entraîne la planification de l'exécution d'un thread.

Surcharges

Start()

Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en Running.

Start(Object)

Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en Running, et fournit éventuellement un objet contenant les données que la méthode exécutée par le thread doit utiliser.

Start()

Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en Running.

C#
public void Start ();
C#
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void Start ();
Attributs

Exceptions

Le thread a déjà été démarré.

La mémoire disponible est insuffisante pour démarrer ce thread.

Exemples

L’exemple suivant crée et démarre un thread.

C#
using System;
using System.Threading;

public class ThreadWork
{
   public static void DoWork()
   {
      for(int i = 0; i<3;i++) {
         Console.WriteLine("Working thread...");
         Thread.Sleep(100);
      }
   }
}
class ThreadTest
{
   public static void Main()
   {
      Thread thread1 = new Thread(ThreadWork.DoWork);
      thread1.Start();
      for (int i = 0; i<3; i++) {
         Console.WriteLine("In main.");
         Thread.Sleep(100);
      }
   }
}
// The example displays output like the following:
//       In main.
//       Working thread...
//       In main.
//       Working thread...
//       In main.
//       Working thread...

Remarques

Une fois qu’un thread est dans l' ThreadState.Running État, le système d’exploitation peut le planifier en vue de son exécution. Le thread commence à s’exécuter à la première ligne de la méthode représentée par ThreadStart le ParameterizedThreadStart délégué ou fourni au constructeur de thread. Notez que l’appel à Start ne bloque pas le thread appelant.

Remarque

Si cette surcharge est utilisée avec un thread créé à l’aide d’un ParameterizedThreadStart délégué, null est passé à la méthode exécutée par le thread.

Une fois que le thread s’arrête, il ne peut pas être redémarré avec un autre appel à Start .

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1

Start(Object)

Provoque le changement, par le système d'exploitation, de l'état de l'instance actuelle en Running, et fournit éventuellement un objet contenant les données que la méthode exécutée par le thread doit utiliser.

C#
public void Start (object? parameter);
C#
[System.Runtime.Versioning.UnsupportedOSPlatform("browser")]
public void Start (object? parameter);
C#
public void Start (object parameter);

Paramètres

parameter
Object

Objet contenant les données que la méthode exécutée par le thread doit utiliser.

Attributs

Exceptions

Le thread a déjà été démarré.

La mémoire disponible est insuffisante pour démarrer ce thread.

Ce thread a été créé à l’aide d’un délégué ThreadStart au lieu d’un délégué ParameterizedThreadStart.

Exemples

L’exemple suivant crée un ParameterizedThreadStart délégué avec une méthode statique et une méthode d’instance.

C#
using System;
using System.Threading;

public class Work
{
    public static void Main()
    {
        // Start a thread that calls a parameterized static method.
        Thread newThread = new Thread(Work.DoWork);
        newThread.Start(42);

        // Start a thread that calls a parameterized instance method.
        Work w = new Work();
        newThread = new Thread(w.DoMoreWork);
        newThread.Start("The answer.");
    }
 
    public static void DoWork(object data)
    {
        Console.WriteLine("Static thread procedure. Data='{0}'",
            data);
    }

    public void DoMoreWork(object data)
    {
        Console.WriteLine("Instance thread procedure. Data='{0}'",
            data);
    }
}
// This example displays output like the following:
//       Static thread procedure. Data='42'
//       Instance thread procedure. Data='The answer.'

Remarques

Une fois qu’un thread est dans l' ThreadState.Running État, le système d’exploitation peut le planifier en vue de son exécution. Le thread commence à s’exécuter à la première ligne de la méthode représentée par ThreadStart le ParameterizedThreadStart délégué ou fourni au constructeur de thread. Notez que l’appel à Start ne bloque pas le thread appelant.

Une fois que le thread s’arrête, il ne peut pas être redémarré avec un autre appel à Start .

Cette surcharge et le ParameterizedThreadStart délégué facilitent le passage de données à une procédure de thread, mais la technique n’est pas de type sécurisé, car tout objet peut être passé à cette surcharge. Un moyen plus robuste de passer des données à une procédure de thread consiste à placer la procédure de thread et les champs de données dans un objet de travail. Pour plus d’informations, consultez création de threads et passage de données à l’heure de début.

Voir aussi

S’applique à

.NET 7 et autres versions
Produit Versions
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7
.NET Framework 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8
.NET Standard 2.0, 2.1