이 문서는 기계 번역을 이용하여 번역되었습니다. 문서를 영문으로 보려면 영문 확인란을 선택하세요. 마우스 포인터를 텍스트 위로 이동시켜 팝업 창에서 영문 텍스트를 표시할 수도 있습니다.
번역
영문

WaitHandle.WaitOne 메서드 ()

 

게시 날짜: 2016년 11월

현재 WaitHandle이(가) 신호를 받을 때까지 현재 스레드를 차단합니다.

네임스페이스:   System.Threading
어셈블리:  mscorlib(mscorlib.dll에 있음)

public virtual bool WaitOne()

반환 값

Type: System.Boolean

현재 인스턴스가 신호를 받으면 true을(를) 반환합니다. 현재 인스턴스가 신호를 받지 않으면 WaitOne은(는) 아무 값도 반환하지 않습니다.

Exception Condition
ObjectDisposedException

현재 인스턴스가 이미 삭제 되었습니다.

AbandonedMutexException

스레드가 뮤텍스를 해제 하지 않고 종료 되었기 때문에 완료 하 고 대기 합니다. Windows 98 또는 Windows Millennium Edition에는이 예외가 throw 되지 않습니다.

InvalidOperationException

현재 인스턴스는에 대 한 투명 프록시는 WaitHandle 다른 응용 프로그램 도메인입니다.

AbandonedMutexException .NET Framework 버전 2.0의에서 새로운 기능입니다. 이전 버전에서의 WaitOne 메서드 반환 true 중단 되는 경우. 중단 된 뮤텍스는 종종는 심각한 코딩 오류를 나타냅니다. 시스템 차원의 뮤텍스를의 경우 (예를 들어 사용 하 여 Windows 작업 관리자) 응용 프로그램이 갑자기 종료 되었습니다 나타낼 수 있습니다. 예외 디버깅 하는 데 유용한 정보를 포함합니다.

현재 인스턴스가 신호를 받을 때까지 무제한으로이 메서드 차단의 호출자입니다. 이 메서드를 사용 하 여 될 때까지 차단는 WaitHandle 다른 스레드의 신호를 받으면와 같은 비동기 작업이 완료 될 때 생성 됩니다. 자세한 내용은 참조는 IAsyncResult 인터페이스입니다.

이 메서드 오버 로드를 호출 하는 것은 WaitOne(Int32, Boolean) 메서드 오버 로드 하 고-1을 지정 또는 Timeout.Infinite 첫 번째 매개 변수에 대 한 및 false 두 번째 매개 변수에 대 한 합니다.

파생 된 클래스의 동작을 사용자 지정 하려면이 메서드를 재정의 합니다.

다음 코드 예제에는 프로세스는 백그라운드 스레드가 실행을 완료할 때까지 대기 하는 동안 종료 되지 않도록 하려면 대기 핸들을 사용 하는 방법을 보여 줍니다.

using System;
using System.Threading;

class WaitOne
{
    static AutoResetEvent autoEvent = new AutoResetEvent(false);

    static void Main()
    {
        Console.WriteLine("Main starting.");

        ThreadPool.QueueUserWorkItem(
            new WaitCallback(WorkMethod), autoEvent);

        // Wait for work method to signal.
        autoEvent.WaitOne();
        Console.WriteLine("Work method signaled.\nMain ending.");
    }

    static void WorkMethod(object stateInfo) 
    {
        Console.WriteLine("Work starting.");

        // Simulate time spent working.
        Thread.Sleep(new Random().Next(100, 2000));

        // Signal that work is finished.
        Console.WriteLine("Work ending.");
        ((AutoResetEvent)stateInfo).Set();
    }
}

유니버설 Windows 플랫폼
8 이후 사용 가능
.NET Framework
1.1 이후 사용 가능
이식 가능한 클래스 라이브러리
이식 가능한 .NET 플랫폼 에서 지원됨
Silverlight
2.0 이후 사용 가능
Windows Phone Silverlight
7.0 이후 사용 가능
Windows Phone
8.1 이후 사용 가능
맨 위로 이동
표시: