종료하기 위해 스레드에서 exit(0)
(<stdlib.h>
)에 대한 호출을 사용하는 .NET C#/C++ 앱이 있습니다..NET - 종결 자 및 종료 (0)
경우에 따라 이상한 부분은 exit
을 호출 한 직후 관리 대상 개체의 종료자를 호출하며, 다른 경우에는 전혀 호출되지 않습니다.
상황이 꽤 결정적입니다. 앱이 평생 동안 외부 플러그인 dll (관리되지 않는 C로 작성 됨)에서 일부 메소드를 호출합니다.
dll을 사용하면 finalizer가 항상 호출됩니다.
dll B를 사용하면 finalizers가 호출되지 않습니다.
종료 (0) 호출의 경우 종료 자로 예상되는 동작은 무엇입니까? (예상되는 동작 및 문서화 된 동작이있는 경우)
외부 DLL에 대한 호출이 프로세스가 종료되는 방식에 영향을 줄 수있는 일부 전역 설정을 변경할 수 있습니까?
finalizers보다는 IDisposable 패턴을 사용해야합니다. –
나는 코드를 처음 보았을 때 생각했다.하지만 코드베이스에 악마가 이미있다. ... –