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

AppDomain.Unload 메서드 (AppDomain)

 

게시 날짜: 2016년 11월

지정한 응용 프로그램 도메인을 언로드합니다.

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

[SecurityPermissionAttribute(SecurityAction.Demand, ControlAppDomain = true)]
public static void Unload(
	AppDomain domain
)

매개 변수

domain
Type: System.AppDomain

언로드할 응용 프로그램 도메인입니다.

Exception Condition
ArgumentNullException

domainnull인 경우

CannotUnloadAppDomainException

domain언로드할 수 없습니다.

Exception

언로드하는 동안 오류가 발생 했습니다.

.NET Framework 버전 2.0에에서는 스레드가 없는 응용 프로그램 도메인 언로드 전용입니다. .NET Framework 호스팅되는 경우에 특히 안정성 향상 됩니다. 호출 하면 스레드 Unload, 언로드되도록 대상 도메인이 표시 됩니다. 전용된 스레드가 도메인의 언로드 하 고 도메인의 모든 스레드가 중단 합니다. 스레드가 중단 되지 않는 예를 들어 비관리 코드를 실행 하는 경우 또는 실행 한 finally 일정 기간 후 다음 블록은 CannotUnloadAppDomainException 원래 호출한 스레드가에서 throw 된 Unload합니다. 결국 중단 하지 스레드가 종료 되는 경우에 대상 도메인은 언로드되지 않습니다. 따라서.NET Framework 버전 2.0에서에서 domain 보장 되지 않는 언로드되도록 것 수 없는 경우에 실행 중인 스레드를 종료할 수 있습니다.

System_CAPS_note참고

경우에 따라 호출 Unload 즉시 발생할 CannotUnloadAppDomainException, 예를 들어 종료자에서 메서드를 호출 합니다.

스레드 domain 를 사용 하 여 종료 되는 Abort throw 하는 메서드는 ThreadAbortException 스레드에서 합니다. 에 예측할 수 없는 기간 동안 실행을 계속할 수 있지만 스레드가 즉시 종료 되어야는 finally 절.

.NET framework 버전 1.0 및 1.1를 호출한 스레드가 경우 Unload 에서 실행 되 고 domain, 다른 스레드 언로드 작업을 수행 하기 시작 합니다. 경우 domain 언로드할 수 없으며는 CannotUnloadAppDomainException 를 호출한 원래 스레드가에 없는 해당 스레드에서 throw 되 Unload합니다. 그러나 호출 하는 스레드가 Unload 외부에서 실행 되 domain, 스레드가 예외를 받습니다.

다음 코드 예제에서는 응용 프로그램 도메인 언로드 하는 방법을 보여 줍니다.

using System;
using System.Reflection;
using System.Security.Policy;  //for evidence object
class ADUnload
{
	public static void Main()
	{

		//Create evidence for the new appdomain.
		Evidence adevidence = AppDomain.CurrentDomain.Evidence;

 		// Create the new application domain.
 		AppDomain domain = AppDomain.CreateDomain("MyDomain", adevidence);

            	Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
            	Console.WriteLine("child domain: " + domain.FriendlyName);
		// Unload the application domain.
		AppDomain.Unload(domain);

		try
		{
		Console.WriteLine();
		// Note that the following statement creates an exception because the domain no longer exists.
            	Console.WriteLine("child domain: " + domain.FriendlyName);
		}

		catch (AppDomainUnloadedException e)
		{
		Console.WriteLine("The appdomain MyDomain does not exist.");
		}

	}

}

SecurityPermission

to add an event handler for this event. Associated enumeration: F:System.Security.Permissions.SecurityPermissionFlag.ControlAppDomain. Security action: F:System.Security.Permissions.SecurityAction.Demand.

.NET Framework
1.1 이후 사용 가능
맨 위로 이동
표시: