마무리가 결심이 결코 부름받지 못한다는 것을 보증하는 데 사용할 수 있습니까?

StackOverflow https://stackoverflow.com//questions/9674465

문제

우리는 제 3 자 시스템을 초기화하는 데 사용되는 스레드가이를 종료하는 데 사용되는 동일한 스레드 여야하는 매우 까다로운 interop 문제가 있습니다. 이 작업을 수행하지 않으면 교착 상태가 발생합니다. 우리는 IIS에서 호스팅되는 WCF 서비스에서 interop을 수행하고 있습니다. 현재이 정리는 폐기로 이루어지고 일반적으로 잘 작동합니다. 불행히도, 무거운로드 IIS에서는 무례한 언로드를 할 것이며 우리는 폐기를 요구하지 않습니다. 셧다운 논리를 중요한 finalizer로 이동시킬 수 있지만 더 이상 초기화 스레드에 액세스 할 수 없기 때문에 도움이되지 않습니다! 이 시점에서 우리의 유일한 의뢰는 AppDomain이 이제 손상된 상태에서 발생할 가능성이있는 CLR에 알리고있는 것으로 보인다. 그러나 저는 어떻게 해야하는지 모르겠습니다 (또는 가능한 경우). 이것은 클래스 수준에서 계약의 유용성이지만 나는 완전히 이해하지 못한다는 것을 인정합니다.

편집 : 대안으로, 이것은 최종 기에서 나사 선호도 문제로 볼 수 있습니다. 누구든지 그 사람에게 영리한 해결책을 가지고 있다면 나는 모든 귀입니다.)

도움이 되었습니까?

해결책

가능한 경우 독립 실행 형 Windows 서비스 응용 프로그램에 대한 기본 종속성에 따라 다르게되는 코드를 분할하십시오.WCF / IIS와 잘 작동하지 않으면 분쟁 대신 충돌을 피해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top