영어로 읽기

다음을 통해 공유


Timeout 클래스

정의

무한 시간 제한 간격을 지정하는 상수를 포함합니다. 이 클래스는 상속될 수 없습니다.

C#
public static class Timeout
C#
public sealed class Timeout
C#
[System.Runtime.InteropServices.ComVisible(true)]
public static class Timeout
상속
Timeout
특성

예제

다음 예제는 무한 시간 동안 절전 상태로 전환할 스레드 및 절전 이후에 보여 줍니다.

C#
using System;
using System.Security.Permissions;
using System.Threading;

class ThreadInterrupt
{
    static void Main()
    {
        StayAwake stayAwake = new StayAwake();
        Thread newThread = 
            new Thread(new ThreadStart(stayAwake.ThreadMethod));
        newThread.Start();

        // The following line causes an exception to be thrown 
        // in ThreadMethod if newThread is currently blocked
        // or becomes blocked in the future.
        newThread.Interrupt();
        Console.WriteLine("Main thread calls Interrupt on newThread.");

        // Tell newThread to go to sleep.
        stayAwake.SleepSwitch = true;

        // Wait for newThread to end.
        newThread.Join();
    }
}

class StayAwake
{
    bool sleepSwitch = false;

    public bool SleepSwitch
    {
        set{ sleepSwitch = value; }
    }

    public StayAwake(){}

    public void ThreadMethod()
    {
        Console.WriteLine("newThread is executing ThreadMethod.");
        while(!sleepSwitch)
        {
            // Use SpinWait instead of Sleep to demonstrate the 
            // effect of calling Interrupt on a running thread.
            Thread.SpinWait(10000000);
        }
        try
        {
            Console.WriteLine("newThread going to sleep.");

            // When newThread goes to sleep, it is immediately 
            // woken up by a ThreadInterruptedException.
            Thread.Sleep(Timeout.Infinite);
        }
        catch(ThreadInterruptedException e)
        {
            Console.WriteLine("newThread cannot go to sleep - " +
                "interrupted by main thread.");
        }
    }
}

설명

이 클래스의 멤버는 스레딩 작업에 무한 시간 제한 간격을 지정 하려면 사용 됩니다. Infinite 정수를 허용 하는 메서드를 사용해 millisecondsTimeout 매개 변수를 같은 Thread.Sleep(Int32), Thread.Join(Int32), 및 ReaderWriterLock.AcquireReaderLock(Int32)합니다. InfiniteTimeSpan 허용 하는 메서드에 사용 되는 timeout 형식의 매개 변수 TimeSpan와 같은 Thread.Sleep(TimeSpan), Thread.Join(TimeSpan), 및 ReaderWriterLock.AcquireReaderLock(TimeSpan)합니다.

필드

Infinite

Int32 매개 변수를 받아들이는 스레딩 메서드의 경우 무한 대기 기간을 지정하는 데 사용되는 상수입니다.

InfiniteTimeSpan

TimeSpan 매개 변수를 받아들이는 메서드의 경우 무한 대기 기간을 지정하는 데 사용되는 상수입니다.

적용 대상

제품 버전
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.0, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 2.0, 2.1
UWP 10.0

스레드 보안

이 형식은 스레드로부터 안전합니다.

추가 정보