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

Определение

Приостанавливает текущий поток на заданное время.Suspends the current thread for the specified amount of time.

Перегрузки

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

Приостанавливает текущий поток на заданное количество миллисекунд.Suspends the current thread for the specified number of milliseconds.

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

Приостанавливает текущий поток на заданное время.Suspends the current thread for the specified amount of time.

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

Приостанавливает текущий поток на заданное количество миллисекунд.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)

Параметры

millisecondsTimeout
Int32 Int32 Int32 Int32

Количество миллисекунд, на которое приостанавливается поток.The number of milliseconds for which the thread is suspended. Если значение аргумента millisecondsTimeout равно нулю, поток освобождает оставшуюся часть своего интервала времени для любого потока с таким же приоритетом, готовым к выполнению.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. Если других готовых к выполнению потоков с таким же приоритетом нет, выполнение текущего потока не приостанавливается.If there are no other threads of equal priority that are ready to run, execution of the current thread is not suspended.

Исключения

Значение времени ожидания является отрицательной величиной и не равно Infinite.The time-out value is negative and is not equal to Infinite.

Примеры

В следующем примере используется Sleep метод для блокирования основного потока приложения.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.

Комментарии

Поток не планируется для выполнения в операционной системе на указанный период времени.The thread will not be scheduled for execution by the operating system for the amount of time specified. Этот метод изменяет состояние потока для включения WaitSleepJoin.This method changes the state of the thread to include WaitSleepJoin.

Можно указать Timeout.Infinite для millisecondsTimeout параметр на приостановку потока неопределенное время.You can specify Timeout.Infinite for the millisecondsTimeout parameter to suspend the thread indefinitely. Тем не менее, мы рекомендуем использовать другие System.Threading классы, такие как Mutex, Monitor, EventWaitHandle, или Semaphore вместо этого для синхронизации потоков или управления ресурсами.However, we recommend that you use other System.Threading classes such as Mutex, Monitor, EventWaitHandle, or Semaphore instead to synchronize threads or manage resources.

Тактов системы конкретного скоростью вызывается временное разрешение.The system clock ticks at a specific rate called the clock resolution. Фактическое время ожидания может быть точно заданного времени ожидания, так как заданное время ожидания будет впоследствии скорректирована совпадают с тактов.The actual timeout might not be exactly the specified timeout, because the specified timeout will be adjusted to coincide with clock ticks. Дополнительные сведения на временное разрешение и времени ожидания см. в разделе спящий режим функция раздела.For more information on clock resolution and the waiting time, see the Sleep function topic. Этот метод вызывает метод спящий режим функция из системы Windows API-интерфейсы.This method calls the Sleep function from the Windows system APIs.

Этот метод не выполняет стандартный COM и SendMessage.This method does not perform standard COM and SendMessage pumping.

Примечание

Необходимости в спящий режим в потоке, который имеет STAThreadAttribute, но вы хотите выполнить стандартный COM и SendMessage, рассмотрите возможность использования одной из перегрузок Join метод, задающий интервал времени ожидания.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)

Приостанавливает текущий поток на заданное время.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)

Параметры

timeout
TimeSpan TimeSpan TimeSpan TimeSpan

Время, на которое приостанавливается поток.The amount of time for which the thread is suspended. Если значение аргумента millisecondsTimeout равно Zero, поток освобождает оставшуюся часть своего интервала времени для любого потока с таким же приоритетом, готовым к выполнению.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. Если других готовых к выполнению потоков с таким же приоритетом нет, выполнение текущего потока не приостанавливается.If there are no other threads of equal priority that are ready to run, execution of the current thread is not suspended.

Исключения

Значение timeout является отрицательным и не равно Infinite (в миллисекундах) или больше MaxValue миллисекунд.The value of timeout is negative and is not equal to Infinite in milliseconds, or is greater than MaxValue milliseconds.

Примеры

В следующем примере используется Sleep(TimeSpan) перегрузку метода для блокирования основного потока приложения пять раз на две секунды каждый раз.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.

Комментарии

Поток не планируется для выполнения в операционной системе на указанный период времени.The thread will not be scheduled for execution by the operating system for the amount of time specified. Этот метод изменяет состояние потока для включения WaitSleepJoin.This method changes the state of the thread to include WaitSleepJoin.

Можно указать Timeout.InfiniteTimeSpan для timeout параметр на приостановку потока неопределенное время.You can specify Timeout.InfiniteTimeSpan for the timeout parameter to suspend the thread indefinitely. Тем не менее, мы рекомендуем использовать другие System.Threading классы, такие как Mutex, Monitor, EventWaitHandle, или Semaphore вместо этого для синхронизации потоков или управления ресурсами.However, we recommend that you use other System.Threading classes such as Mutex, Monitor, EventWaitHandle, or Semaphore instead to synchronize threads or manage resources.

Эта перегрузка Sleep использует общее количество миллисекунд в timeout.This overload of Sleep uses the total number of whole milliseconds in timeout. Дробное количество миллисекунд, отбрасываются.Fractional milliseconds are discarded.

Этот метод не выполняет стандартный COM и SendMessage.This method does not perform standard COM and SendMessage pumping.

Примечание

Необходимости в спящий режим в потоке, который имеет STAThreadAttribute, но вы хотите выполнить стандартный COM и SendMessage, рассмотрите возможность использования одной из перегрузок Join метод, задающий интервал времени ожидания.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.

Применяется к