Thread.Sleep Thread.Sleep Thread.Sleep Thread.Sleep Method

Définition

Suspend le thread actuel pendant la durée spécifiée.Suspends the current thread for the specified amount of time.

Surcharges

Sleep(Int32) Sleep(Int32) Sleep(Int32) Sleep(Int32)

Suspend le thread actuel pendant le nombre spécifié de millisecondes.Suspends the current thread for the specified number of milliseconds.

Sleep(TimeSpan) Sleep(TimeSpan) Sleep(TimeSpan) Sleep(TimeSpan)

Suspend le thread actuel pendant la durée spécifiée.Suspends the current thread for the specified amount of time.

Sleep(Int32) Sleep(Int32) Sleep(Int32) Sleep(Int32)

Suspend le thread actuel pendant le nombre spécifié de millisecondes.Suspends the current thread for the specified number of milliseconds.

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

millisecondsTimeout
Int32 Int32 Int32 Int32

Nombre de millisecondes pendant lesquelles le thread est suspendu.The number of milliseconds for which the thread is suspended. 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é.If the value of the millisecondsTimeout argument is zero, the thread relinquishes the remainder of its time slice to any thread of equal priority that is ready to run. 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.If there are no other threads of equal priority that are ready to run, execution of the current thread is not suspended.

Exceptions

La valeur du délai d’attente est négative et n’est pas égale à Infinite.The time-out value is negative and is not equal to Infinite.

Exemples

L’exemple suivant utilise la Sleep méthode pour bloquer le thread principal de l’application.The following example uses the Sleep method to block the application's main thread.

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.
 */
Imports System.Threading

Class Example

    Shared Sub Main()

        For i As Integer = 0 To 4
            Console.WriteLine("Sleep for 2 seconds.")
            Thread.Sleep(2000)
        Next

        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

Le thread n’est plus planifié pour l’exécution par le système d’exploitation pendant la durée spécifiée.The thread will not be scheduled for execution by the operating system for the amount of time specified. Cette méthode modifie l’état du thread pour inclure WaitSleepJoin.This method changes the state of the thread to include WaitSleepJoin.

Vous pouvez spécifier Timeout.Infinite pour le millisecondsTimeout paramètre d’interruption du thread indéfiniment.You can specify Timeout.Infinite for the millisecondsTimeout parameter to suspend the thread indefinitely. Toutefois, nous vous recommandons d’utiliser des autres System.Threading classes telles que Mutex, Monitor, EventWaitHandle, ou Semaphore au lieu de cela pour synchroniser des threads ou de gérer les ressources.However, we recommend that you use other System.Threading classes such as Mutex, Monitor, EventWaitHandle, or Semaphore instead to synchronize threads or manage resources.

Les battements d’horloge système à un rythme spécifique appelée la résolution de l’horloge.The system clock ticks at a specific rate called the clock resolution. Le délai d’expiration réelle peut être pas exactement le délai spécifié, car le délai d’expiration spécifié est ajustée pour coïncider avec battements d’horloge.The actual timeout might not be exactly the specified timeout, because the specified timeout will be adjusted to coincide with clock ticks. Pour plus d’informations sur la résolution de l’horloge et le temps d’attente, consultez la veille fonction rubrique.For more information on clock resolution and the waiting time, see the Sleep function topic. Cette méthode appelle la mise en veille de la fonction à partir de l’API du système Windows.This method calls the Sleep function from the Windows system APIs.

Cette méthode n’effectue pas standard pompage COM et SendMessage.This method does not perform standard COM and SendMessage pumping.

Notes

Si vous devez mettre en veille sur un thread qui a STAThreadAttribute, mais que vous souhaitez effectuer standard pompage COM et SendMessage, envisagez d’utiliser une des surcharges de la Join méthode qui spécifie un intervalle de délai d’attente.If you need to sleep on a thread that has STAThreadAttribute, but you want to perform standard COM and SendMessage pumping, consider using one of the overloads of the Join method that specifies a timeout interval.

Sleep(TimeSpan) Sleep(TimeSpan) Sleep(TimeSpan) Sleep(TimeSpan)

Suspend le thread actuel pendant la durée spécifiée.Suspends the current thread for the specified amount of time.

public:
 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

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

Durée pendant laquelle le thread est suspendu.The amount of time for which the thread is suspended. Si la valeur de l’argument millisecondsTimeout est Zero, le thread abandonne le reste de sa tranche de temps à n’importe quel thread de priorité égale prêt à être exécuté.If the value of the millisecondsTimeout argument is Zero, the thread relinquishes the remainder of its time slice to any thread of equal priority that is ready to run. 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.If there are no other threads of equal priority that are ready to run, execution of the current thread is not suspended.

Exceptions

La valeur de timeout est négative et n’est pas égale à Infinite en millisecondes, ou est supérieure à MaxValue millisecondes.The value of timeout is negative and is not equal to Infinite in milliseconds, or is greater than MaxValue milliseconds.

Exemples

L’exemple suivant utilise le Sleep(TimeSpan) surcharge de méthode pour bloquer des cinq fois, thread principal de l’application pendant deux secondes.The following example uses the Sleep(TimeSpan) method overload to block the application's main thread five times, for two seconds each time.

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.
 */
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)
        Next

        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

Le thread n’est plus planifié pour l’exécution par le système d’exploitation pendant la durée spécifiée.The thread will not be scheduled for execution by the operating system for the amount of time specified. Cette méthode modifie l’état du thread pour inclure WaitSleepJoin.This method changes the state of the thread to include WaitSleepJoin.

Vous pouvez spécifier Timeout.InfiniteTimeSpan pour le timeout paramètre d’interruption du thread indéfiniment.You can specify Timeout.InfiniteTimeSpan for the timeout parameter to suspend the thread indefinitely. Toutefois, nous vous recommandons d’utiliser des autres System.Threading classes telles que Mutex, Monitor, EventWaitHandle, ou Semaphore au lieu de cela pour synchroniser des threads ou de gérer les ressources.However, we recommend that you use other System.Threading classes such as Mutex, Monitor, EventWaitHandle, or Semaphore instead to synchronize threads or manage resources.

Cette surcharge de Sleep utilise le nombre total de millisecondes entières dans timeout.This overload of Sleep uses the total number of whole milliseconds in timeout. Fractions de milliseconde sont ignorées.Fractional milliseconds are discarded.

Cette méthode n’effectue pas standard pompage COM et SendMessage.This method does not perform standard COM and SendMessage pumping.

Notes

Si vous devez mettre en veille sur un thread qui a STAThreadAttribute, mais que vous souhaitez effectuer standard pompage COM et SendMessage, envisagez d’utiliser une des surcharges de la Join méthode qui spécifie un intervalle de délai d’attente.If you need to sleep on a thread that has STAThreadAttribute, but you want to perform standard COM and SendMessage pumping, consider using one of the overloads of the Join method that specifies a timeout interval.

S’applique à