Ce navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Télécharger Microsoft Edge
Plus d’informations sur Internet Explorer et Microsoft Edge
public:
static void Sleep(int millisecondsTimeout);
public static void Sleep (int millisecondsTimeout);
static member Sleep : int -> unit
Public Shared Sub Sleep (millisecondsTimeout As Integer)
Paramètres
Nombre de millisecondes pendant lesquelles le thread est suspendu. Si la valeur de l'argument
millisecondsTimeout
est égale à zéro, le thread abandonne le reste de sa tranche de temps à n'importe quel thread de priorité égale prêt à être exécuté. S'il n'existe pas d'autres threads de priorité égale prêts à être exécutés, l'exécution du thread actuel n'est pas suspendue.
Exemples
L’exemple suivant utilise la
Sleep
méthode pour bloquer le thread main de l’application.
using namespace System;
using namespace System::Threading;
int main()
for (int i = 0; i < 5; i++)
Console::WriteLine("Sleep for 2 seconds.");
Thread::Sleep(2000);
Console::WriteLine("Main thread exits.");
/* This example produces the following output:
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Main thread exits.
using System;
using System.Threading;
class Example
static void Main()
for (int i = 0; i < 5; i++)
Console.WriteLine("Sleep for 2 seconds.");
Thread.Sleep(2000);
Console.WriteLine("Main thread exits.");
/* This example produces the following output:
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Main thread exits.
open System.Threading
for _ = 0 to 4 do
printfn "Sleep for 2 seconds."
Thread.Sleep 2000
printfn "Main thread exits."
// This example produces the following output:
// Sleep for 2 seconds.
// Sleep for 2 seconds.
// Sleep for 2 seconds.
// Sleep for 2 seconds.
// Sleep for 2 seconds.
// Main thread exits.
Imports System.Threading
Class Example
Shared Sub Main()
For i As Integer = 0 To 4
Console.WriteLine("Sleep for 2 seconds.")
Thread.Sleep(2000)
Console.WriteLine("Main thread exits.")
End Sub
End Class
' This example produces the following output:
'Sleep for 2 seconds.
'Sleep for 2 seconds.
'Sleep for 2 seconds.
'Sleep for 2 seconds.
'Sleep for 2 seconds.
'Main thread exits.
Remarques
L’exécution du thread n’est pas planifiée par le système d’exploitation pendant la durée spécifiée. Cette méthode modifie l’état du thread pour inclure
WaitSleepJoin
.
Vous pouvez spécifier
Timeout.Infinite
que le
millisecondsTimeout
paramètre suspend le thread indéfiniment. Toutefois, nous vous recommandons d’utiliser d’autres
System.Threading
classes telles que
Mutex
,
Monitor
,
EventWaitHandle
ou
Semaphore
à la place pour synchroniser des threads ou gérer des ressources.
L’horloge système se déclenche à un rythme spécifique appelé résolution d’horloge. Le délai d’expiration réel peut ne pas être exactement le délai d’expiration spécifié, car le délai d’expiration spécifié sera ajusté pour coïncider avec les cycles d’horloge. Pour plus d’informations sur la résolution d’horloge et le temps d’attente, consultez la
fonction Veille
à partir des API système Windows.
Cette méthode n’effectue pas de pompage COM et SendMessage standard.
Notes
Si vous devez mettre en veille sur un thread qui a
STAThreadAttribute
, mais que vous souhaitez effectuer un pompage COM et SendMessage standard, envisagez d’utiliser l’une des surcharges de la
Join
méthode qui spécifie un intervalle de délai d’expiration.
static void Sleep(TimeSpan timeout);
public static void Sleep (TimeSpan timeout);
static member Sleep : TimeSpan -> unit
Public Shared Sub Sleep (timeout As TimeSpan)
Paramètres
Durée pendant laquelle le thread est suspendu. Si la valeur de l’argument
timeout
est
Zero
, le thread abandonne le reste de sa tranche de temps à n’importe quel thread de priorité égale prêt à être exécuté. S'il n'existe pas d'autres threads de priorité égale prêts à être exécutés, l'exécution du thread actuel n'est pas suspendue.
Exemples
L’exemple suivant utilise la
Sleep(TimeSpan)
surcharge de méthode pour bloquer cinq fois le thread main de l’application, pendant deux secondes à chaque fois.
using namespace System;
using namespace System::Threading;
int main()
TimeSpan interval = TimeSpan(0, 0, 2);
for (int i = 0; i < 5; i++)
Console::WriteLine("Sleep for 2 seconds.");
Thread::Sleep(interval);
Console::WriteLine("Main thread exits.");
/* This example produces the following output:
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Main thread exits.
using System;
using System.Threading;
class Example
static void Main()
TimeSpan interval = new TimeSpan(0, 0, 2);
for (int i = 0; i < 5; i++)
Console.WriteLine("Sleep for 2 seconds.");
Thread.Sleep(interval);
Console.WriteLine("Main thread exits.");
/* This example produces the following output:
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Sleep for 2 seconds.
Main thread exits.
open System
open System.Threading
let interval = TimeSpan(0, 0, 2)
for _ = 0 to 4 do
printfn "Sleep for 2 seconds."
Thread.Sleep interval
printfn "Main thread exits."
// This example produces the following output:
// Sleep for 2 seconds.
// Sleep for 2 seconds.
// Sleep for 2 seconds.
// Sleep for 2 seconds.
// Sleep for 2 seconds.
// Main thread exits.
Imports System.Threading
Class Example
Shared Sub Main()
Dim interval As New TimeSpan(0, 0, 2)
For i As Integer = 0 To 4
Console.WriteLine("Sleep for 2 seconds.")
Thread.Sleep(interval)
Console.WriteLine("Main thread exits.")
End Sub
End Class
' This example produces the following output:
'Sleep for 2 seconds.
'Sleep for 2 seconds.
'Sleep for 2 seconds.
'Sleep for 2 seconds.
'Sleep for 2 seconds.
'Main thread exits.
Remarques
L’exécution du thread n’est pas planifiée par le système d’exploitation pendant la durée spécifiée. Cette méthode modifie l’état du thread pour inclure
WaitSleepJoin
.
Vous pouvez spécifier
Timeout.InfiniteTimeSpan
que le
timeout
paramètre suspend le thread indéfiniment. Toutefois, nous vous recommandons d’utiliser d’autres
System.Threading
classes telles que
Mutex
,
Monitor
,
EventWaitHandle
ou
Semaphore
à la place pour synchroniser des threads ou gérer des ressources.
Cette surcharge de
Sleep
utilise le nombre total de millisecondes entières dans
timeout
. Les fractions de millisecondes sont ignorées.
Cette méthode n’effectue pas de pompage COM et SendMessage standard.
Notes
Si vous devez mettre en veille sur un thread qui a
STAThreadAttribute
, mais que vous souhaitez effectuer un pompage COM et SendMessage standard, envisagez d’utiliser l’une des surcharges de la
Join
méthode qui spécifie un intervalle de délai d’expiration.