2017-03-13 6 views
0

AppDomains를 파악하려고합니다.하위 응용 프로그램 도메인 언로드 부모 개체

은 내가 인수를 한 번 더 새 자식 응용 프로그램 도메인에서 현재 응용 프로그램을 실행하는 코드를 다음을 사용 : 나는 AppDomain.Unload(domain); 통해 언로드 할 때

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

그것은, 그러나, 잘 작동, 그것은 또한 부모를 죽이고 그것은에서 불렸다. 나는 다음과 같은 오류를 볼 수있는 디버그 출력에서 ​​

:

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 

는 내가 제대로 부모를 죽이지 않고 같은 아이의 AppDomain을 언로드 할 수있는 방법, 여기에 문제가 무엇인지 확실하지 않다?

+0

'AppDomain'을 언로드하는 코드는 어떻게 생겼습니까? 예외가 있습니까? 오류 메시지를 공유 할 수 있습니까? –

+0

@ RonaldRink'd-fens ', "AppDomain.Unload (domain)"을 사용한 다음 exitcode가 0 인 응용 프로그램이 종료되지만 "AppDomainUnloadedException"및 "Threading.ThreadAbortException"보다 먼저 종료됩니다. 질문에 이들을 추가했습니다. – Puyebu

+0

실제로 호출되지 않는'AppDomain.Unload' 호출 이후에 어떤 코드가 있습니까? –

답변

0

AppDomain을 언로드하려고 시도하기 전에 주 스레드가 완전히 중지되지 않았습니다. 올바르게 중지하면 오류가 수정되었습니다.

관련 문제