이 설명서는 보관되지만 유지 되지 않습니다.

Thread.Join 메서드 (TimeSpan)

표준 COM 및 SendMessage 펌프를 계속 수행하면서 스레드가 종료되거나 지정된 시간이 경과할 때까지 호출 스레드를 차단합니다.

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

public bool Join (
	TimeSpan timeout
)
public boolean Join (
	TimeSpan timeout
)
public function Join (
	timeout : TimeSpan
) : boolean

매개 변수

timeout

스레드가 종료되기를 기다리는 시간으로 설정된 TimeSpan입니다.

반환 값

스레드가 종료되면 true이고, timeout 매개 변수에서 지정한 기간이 경과된 후에도 스레드가 종료되지 않으면 false입니다.

예외 형식조건

ArgumentOutOfRangeException

timeout 값이 음수이고 Timeout.Infinite(밀리초)와 같지 않거나 MaxValue(밀리초)보다 큰 경우

ThreadStateException

호출자가 Unstarted 상태의 스레드에 참여하려고 시도한 경우

Note참고

이 메서드에 적용되는 HostProtectionAttribute 특성의 Resources 속성 값은 Synchronization | ExternalThreading입니다. HostProtectionAttribute는 대개 아이콘을 두 번 클릭하거나, 명령을 입력하거나, 브라우저에서 URL을 입력하여 시작되는 데스크톱 응용 프로그램에 영향을 미치지 않습니다. 자세한 내용은 HostProtectionAttribute 클래스나 SQL Server 프로그래밍 및 호스트 보호 특성을 참조하십시오.

timeout에 대해 Timeout.Infinite가 지정되면 이 메서드는 반환 값을 제외하고 Join 메서드 오버로드와 동일하게 동작합니다.

Join이 호출되었을 때 스레드가 이미 종료되었으면 메서드는 즉시 결과를 반환합니다.

이 메서드는 현재 스레드의 상태를 WaitSleepJoin을 포함하도록 변경합니다. ThreadState.Unstarted 상태의 스레드에 대해서는 Join을 호출할 수 없습니다.

다음 코드 예제에서는 Join 메서드와 함께 TimeSpan 값을 사용하는 방법을 보여 줍니다.

using System;
using System.Threading;

class Test
{
    static TimeSpan waitTime = new TimeSpan(0, 0, 1);

    public static void Main() 
    {
        Thread newThread = 
            new Thread(new ThreadStart(Work));
        newThread.Start();

        if(newThread.Join(waitTime + waitTime))
        {
            Console.WriteLine("New thread terminated.");
        }
        else
        {
            Console.WriteLine("Join timed out.");
        }
    }

    static void Work()
    {
        Thread.Sleep(waitTime);
    }
}

import System.*;
import System.Threading.*;
import System.Threading.Thread;

class Test
{
    private static TimeSpan waitTime = new TimeSpan(0, 0, 1);

    public static void main(String[] args)
    {
        Thread newThread = new Thread(new ThreadStart(Work));

        newThread.Start();
        if (newThread.Join((waitTime.Add(waitTime)))) {
            Console.WriteLine("New thread terminated.");
        }
        else {
            Console.WriteLine("Join timed out.");
        }
    } //main

    static void Work()
    {
        Thread.Sleep(waitTime);
    } //Work
} //Test

Windows 98, Windows 2000 SP4, Windows Millennium Edition, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework에서 모든 플래폼의 모든 버전을 지원하지는 않습니다. 지원되는 버전의 목록은 시스템 요구 사항을 참조하십시오.

.NET Framework

2.0, 1.1, 1.0에서 지원
표시: