2017-03-13 3 views
0

Ich versuche AppDomains herauszufinden.Entladen Kind AppDomain tötet Eltern

I-Code verwenden im Anschluss an die aktuelle Anwendung noch einmal in einem neuen Kind AppDomain mit einem Argument laufen:

AppDomain domain = AppDomain.CreateDomain("NewAppDomain", null); 
    domain.ExecuteAssemblyByName(currentAssembly.FullName, "argument"); 

Es funktioniert gut, aber wenn ich versuche, es zu entladen über AppDomain.Unload(domain);, es tötet auch Eltern es wurde von gerufen.

In der Debug-Ausgabe ich folgende Fehler sehen:

Exception thrown: 'System.Threading.ThreadAbortException' in mscorlib.dll 
Exception thrown: 'System.Threading.ThreadAbortException' in mscorlib.dll 
Exception thrown: 'System.Threading.ThreadAbortException' in TestAppDomain.exe 
Exception thrown: 'System.Threading.ThreadAbortException' in System.Windows.Forms.dll 
Exception thrown: 'System.AppDomainUnloadedException' in TestAppDomain.exe 

Ich bin nicht sicher, was das Problem ist hier, wie kann ich richtig, ohne zu töten Eltern solches Kind AppDomain entladen?

+0

Wie sieht der Code für * Entladen * der 'AppDomain' aus? Hast du eine Ausnahme? Könnten Sie bitte die Fehlermeldung teilen? –

+0

@ RonaldRink'd-fens ', benutze ich einfach "AppDomain.Unload (domain)" und dann beendet Anwendung mit Exitcode 0, aber vorher gibt es "AppDomainUnloadedException" und "Threading.ThreadAbortException". Fügte diese in der Frage hinzu. – Puyebu

+0

Haben Sie tatsächlich einen Code nach dem 'AppDomain.Unload' Aufruf, der nicht aufgerufen wird? –

Antwort

0

Haupt-Thread wurde nicht vollständig beendet, bevor ich versuchte, die AppDomain zu entladen. Stoppen Sie es korrekt behoben den Fehler.