외부 공급 업체 DLL 양식을 사용하고 있습니다. 이 DLL은 스레드로부터 안전하지 않습니다. 실제로 다른 스레드에서 해당 메서드를 호출하려고하면 오류 메시지 상자가 표시되어 중지됩니다. 그리고 DLL에 액세스하는 더 많은 스레드를 사용하는 더 큰 프레임 워크에서 DLL을 사용하고 있습니다. 스레드가 동시에 활성화되지 않아 경쟁 조건이 발생하지 않습니다.스레드 공급 업체가 아닌 외부 공급 업체의 DLL을 사용하십시오.
질문은 다음과 같습니다. 이것을 극복하는 간단한 방법은 무엇입니까? ManualResetEvent, waitOne 및 이벤트를 사용하여 절대로 중단하지 않는 하나의 특별한 스레드에서 실행되는 래퍼를 만들기 시작했습니다. 그러나 이벤트를 통해가는 것은 그 속임수를하지 않습니다. 어떻게하면 DLL이 하나의 스레드에서만 사용된다고 생각하게 할 수 있습니까?
dll에 대한 모든 호출을 '잠금'하는 래퍼를 만들 수 있습니다. http://msdn.microsoft.com/en-us/library/c5kehkcz.aspx – Vlad
대부분의 코드가 스레드에 안전하지 않은 것은 사실입니다. 프레임 워크의 거의 모든 유형이 있습니다. 당신이 잘못하고 있다고 말하는 벤더에게 그 시가를 사주세요. 그는 분명히 당신보다 더 나은 조언을 줄 수 있습니다. 전화를 받고 전화를 겁니다. –