添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接

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.