Maison  >  Article  >  développement back-end  >  Veille des threads C#

Veille des threads C#

王林
王林original
2024-09-03 15:25:49746parcourir

Le thread en cours d'exécution peut être mis en pause ou temporairement suspendu pendant une durée spécifiée à l'aide d'une méthode en C# appelée méthode Sleep() et la durée doit être spécifiée en millisecondes et transmise en tant que paramètre au thread que nous essayez de suspendre ou en utilisant la propriété timespan dans laquelle il existe un privilège de spécifier l'heure en heures, minutes et secondes afin que le fil puisse être mis en pause plus longtemps ainsi que selon nos besoins et pas seulement pendant des millisecondes.

Syntaxe :

Thread.Sleep(Time_in_milliseconds);

Ou

TimeSpaninstance_name = new TimeSpan(Time_in_hours_minutes_seconds);
Thread.Sleep(instance_name);

Où instance_name est le nom de l'instance de la classe TimeSpan.

Fonctionnement de la veille des threads C#

  • Chaque fois qu'il est nécessaire de suspendre l'exécution d'un thread afin qu'un autre thread puisse prendre le relais et démarrer l'exécution, nous utilisons la méthode appelée méthode Sleep().
  • La durée pendant laquelle un thread doit être mis en pause peut être spécifiée en millisecondes et transmise en tant que paramètre à la méthode Sleep() ou elle peut être spécifiée en heures, minutes et secondes à l'aide de la propriété timespan.
  • ArgumentOutOfRangeException est levée par la méthode Sleep() si le temps en millisecondes qui lui est passé en paramètre est négatif.
  • ArgumentOutOfRangeException est levée par la méthode Sleep() si le temps passé en paramètre à la propriété timespan est négatif.
  • Si le temps en millisecondes passé en paramètre à la méthode Sleep() est nul, alors l'autre thread de même priorité qui est prêt à s'exécuter démarre l'exécution.
  • Si le temps passé en paramètre à la propriété timespan est nul, alors l'autre thread de même priorité qui est prêt à s'exécuter démarre l'exécution.

Exemples d'implémentation de la mise en veille des threads en C#

Vous trouverez ci-dessous des exemples de C#Thread Sleep :

Exemple n°1

Programme C# pour démontrer la méthode Sleep() avec le temps en millisecondes passé en paramètre.

 Code :

using System;
using System.Threading;
//a class called program is created
public class program
{
//a method called samplemethod which accepts a parameter is created
public void samplemethod(object str)
{
for (int z = 0; z < 5; z++)
{
Console.WriteLine("The thread that is executing is {0}", str);
Thread.Sleep(200);
}
}
}
//a class called check is created
public class check
{
//main method is called
public static void Main()
{
//two string variables are created which are passed as parameter previously created method in program class
string Iamthread1 = null;
string Iamthread2 = null;
//an instance of the program class is created
program d = new program();
Thread firstthread = new Thread(new ParameterizedThreadStart(d.samplemethod));
Thread secondthread=new Thread(new ParameterizedThreadStart(d.samplemethod));
firstthread.Start("Iamthread1");
secondthread.Start("Iamthread2");
}
}

Sortie :

Veille des threads C#

Explication : Dans le programme ci-dessus, un espace de noms appelé programme est créé dans lequel une méthode appelée exemple de méthode, qui accepte un paramètre, est créée à l'intérieur de laquelle le thread qui opère sur la méthode est mis en pause pendant un un certain temps en utilisant la méthode Sleep(). Ensuite, une classe appelée check est créée dans laquelle la méthode principale est appelée dans laquelle les deux instances de threads sont créées, puis commence leur exécution sur la méthode exemple à l'aide de la méthode Start(). Puisque la méthode Sleep() est utilisée sur les threads fonctionnant sur la méthode d'échantillonnage, les threads ne sont pas exécutés à la suite.

Exemple n°2

Programme C# pour démontrer la méthode Sleep() à l'aide de la propriété TimeSpan.

Code :

using System;
using System.Threading;
//a class called program is created
public class program
{
//a method called samplemethod which accepts a parameter is created
public void samplemethod(object str)
{
//TimeSpan property is used to specify the duration of time for which the thread must be paused
TimeSpan timeout = new TimeSpan(0, 0, 3);
for (int z = 0; z < 3; z++)
{
Console.WriteLine("The thread that is executing is {0}", str);
Thread.Sleep(timeout);
}
}
}
//a class called check is created
public class check
{
//main method is called
public static void Main()
{
//two string variables are created which are passed as parameter previously created method in program class
string Iamthread1 = null;
string Iamthread2 = null;
//an instance of the program class is created
program d = new program();
Thread firstthread = new Thread(new ParameterizedThreadStart(d.samplemethod));
Thread secondthread = new Thread(new ParameterizedThreadStart(d.samplemethod));
firstthread.Start("Iamthread1");
secondthread.Start("Iamthread2");
}
}

Sortie :

Veille des threads C#

Explication : Dans le programme ci-dessus, un espace de noms appelé programme est créé dans lequel une méthode appelée exemple de méthode qui accepte un paramètre est créée à l'intérieur de laquelle le thread qui opère sur la méthode est mis en pause pendant un certain temps. time en utilisant la propriété TimeSpan. Ensuite, une classe appelée check est créée dans laquelle la méthode principale est appelée dans laquelle les deux instances de threads sont créées, puis commence leur exécution sur la méthode exemple à l'aide de la méthode Start(). Puisque la méthode Sleep() est utilisée sur les threads fonctionnant sur la méthode d'échantillonnage, les threads ne sont pas exécutés à la suite. Le résultat est affiché dans l'instantané ci-dessus.

Conclusion

Dans ce tutoriel, nous comprenons le concept de la méthode ThreadSleep en C# à travers la définition, la syntaxe et le fonctionnement de la méthode ThreadSleep à travers des exemples de programmation et leurs sorties.

Article recommandé

Ceci est un guide sur C# Thread Sleep. Nous discutons ici de l'introduction à C# Thread Sleep et de son fonctionnement ainsi que de ses exemples et de l'implémentation du code. Vous pouvez également consulter nos autres articles suggérés pour en savoir plus –

  1. Qu'est-ce que le générateur de nombres aléatoires en C# ?
  2. Constructeur statique en Java | Travailler | Candidatures
  3. TextWriter en C# | Exemples
  4. Comment travailler avec un constructeur statique en C# ?

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
Article précédent:Rejoindre un fil C#Article suivant:Rejoindre un fil C#