Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

AppDomain.Unload (Método)

Descarga el dominio de aplicación especificado.

Espacio de nombres:  System
Ensamblado:  mscorlib (en mscorlib.dll)

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

Parámetros

domain
Tipo: System.AppDomain
Dominio de aplicación que se va a descargar.

ExcepciónCondición
ArgumentNullException

domain es null.

CannotUnloadAppDomainException

No se pudo descargar domain.

Exception

Error durante el proceso de descarga.

En la versión 2.0 de .NET Framework, hay un subproceso dedicado para descargar dominios de aplicación. Esto mejora la confiabilidad, sobre todo cuando .NET Framework está hospedado. Cuando un subproceso llama a Unload, el dominio de destino se marca para descargarlo. El subproceso dedicado intenta descargar el dominio y todos los subprocesos del dominio se anulan. Si no se anula un subproceso (porque se esté ejecutando código no administrado o porque se esté ejecutando un bloque finally, por ejemplo), después de un período de tiempo se produce una excepción CannotUnloadAppDomainException en el subproceso que llamó a Unload en un principio. Si finalmente concluye el subproceso que no se pudo anular, el dominio de destino no se descarga. Así, en la versión 2.0 de .NET Framework, no se garantiza que se descargue domain porque quizás no sea posible finalizar los subprocesos que se estén ejecutando.

NotaNota

En algunos casos, la llamada a Unload produce una excepción CannotUnloadAppDomainException inmediata, por ejemplo, si se llama en un finalizador.

Los subprocesos en domain se finalizan utilizando el método Abort, que produce una excepción ThreadAbortException en el subproceso. Si bien el subproceso debe terminar rápidamente, podrá seguir ejecutándose durante un período de tiempo impredecible en una cláusula finally.

Compatibilidad de versiones

En las versiones 1.0 y 1.1 de .NET Framework, si el subproceso que llama a Unload se está ejecutando en domain, se inicia otro subproceso para que lleve a cabo la operación de descarga. Si no se puede descargar domain, se produce una excepción CannotUnloadAppDomainException en ese subproceso y no en el subproceso original que llamó a Unload. Sin embargo, si el subproceso que llama a Unload se está ejecutando fuera de domain, será dicho subproceso el que reciba la excepción.

En el ejemplo de código siguiente se muestra cómo descargar un dominio de aplicación.


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.");
		}
		
	}
	
}


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft