Sdílet prostřednictvím


Postupy: Uvolnění domény aplikace

Jakmile dokončíte používání domény aplikace, uvolňete ji pomocí metody System.AppDomain.Unload. Metoda Unload řádně vypne zadanou doménu aplikace. Během procesu uvolňování žádná nové vlákna nemohou přístupovat k doméně aplikace a jsou uvolněny všechny datové struktury pro danou doménu aplikace.

Sestavení načtená do domény aplikace jsou odebrána a nejsou dále k dispozici. Jestliže sestavení v doméně aplikace je neutrální vzhledem k doméně, zůstanou data pro sestavení v paměti, dokud není celý proces ukončen. Neexistuje žádný mechanismus k uvolnění sestavení neutrálního vzhledem k doméně, než ukončení celého procesu. Existují situace, kdy žádost na uvolnění domény aplikace nefunguje a výsledkem je CannotUnloadAppDomainException.

Následující příklad vytvoří novou doménu aplikace nazvanou MyDomain, vytiskne některé informace do konzoly a poté uvolní doménu aplikace. Všimněte si, že se kód poté pokusí vytisknout popisný název uvolněné domény aplikace do konzoly. Tato akce generuje výjimku, která je obsloužena příkazy try/catch na konci programu.

Příklad

Imports System
Imports System.Reflection

Class AppDomain2
    Public Shared Sub Main()
        Console.WriteLine("Creating new AppDomain.")
        Dim domain As AppDomain = AppDomain.CreateDomain("MyDomain", Nothing)

        Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName)
        Console.WriteLine("child domain: " + domain.FriendlyName)
        AppDomain.Unload(domain)
        Try
            Console.WriteLine()
            Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName)
            ' The following statement creates an exception because the domain no longer exists.
            Console.WriteLine("child domain: " + domain.FriendlyName)
        Catch e As AppDomainUnloadedException
            Console.WriteLine(e.GetType().FullName)
            Console.WriteLine("The appdomain MyDomain does not exist.")
        End Try
    End Sub
End Class
using System;
using System.Reflection;

class AppDomain2
{
    public static void Main()
    {
        Console.WriteLine("Creating new AppDomain.");
        AppDomain domain = AppDomain.CreateDomain("MyDomain", null);

        Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
        Console.WriteLine("child domain: " + domain.FriendlyName);
        AppDomain.Unload(domain);
        try
        {
            Console.WriteLine();
            Console.WriteLine("Host domain: " + AppDomain.CurrentDomain.FriendlyName);
            // The following statement creates an exception because the domain no longer exists.
            Console.WriteLine("child domain: " + domain.FriendlyName);
        }
        catch (AppDomainUnloadedException e)
        {
            Console.WriteLine(e.GetType().FullName);
            Console.WriteLine("The appdomain MyDomain does not exist.");
        }
    }
}
using namespace System;
using namespace System::Reflection;

ref class AppDomain2
{
public:
    static void Main()
    {
        Console::WriteLine("Creating new AppDomain.");
        AppDomain^ domain = AppDomain::CreateDomain("MyDomain", nullptr);

        Console::WriteLine("Host domain: " + AppDomain::CurrentDomain->FriendlyName);
        Console::WriteLine("child domain: " + domain->FriendlyName);
        AppDomain::Unload(domain);
        try
        {
            Console::WriteLine();
            Console::WriteLine("Host domain: " + AppDomain::CurrentDomain->FriendlyName);
            // The following statement creates an exception because the domain no longer exists.
            Console::WriteLine("child domain: " + domain->FriendlyName);
        }
        catch (AppDomainUnloadedException^ e)
        {
            Console::WriteLine(e->GetType()->FullName);
            Console::WriteLine("The appdomain MyDomain does not exist.");
        }
    }
};

int main()
{
    AppDomain2::Main();
}

Viz také

Úkoly

Postupy: Vytvoření domény aplikace

Koncepty

Programování pomocí domén aplikace

Další zdroje

Použití domén aplikací