레거시 COM 구성 요소가 있습니다. 내 임무는 COM을 래핑하고 동시에 논 블로킹 호출을 사용할 수있는 웹 서비스를 작성하는 것입니다.C# 멀티 스레드 환경에서 레거시 COM 구성 요소 사용
우선, COM 개체 자체가 상태가 없기 때문에 [ThreadStatic] 특성을 사용하기로 결정 했으므로 각 스레드는 COM 개체를 사용하여 lock {} 문을 사용하지 못하도록 방지하고 실제 동시 사용을 허용합니다 처리하지만 모든 호출이 여전히 동기식으로 처리 된 것처럼 보입니다.
{} 루프에 대한 동기 COM 구성 요소에서 메서드를 실행하는 테스트 코드를 작성한 다음 똑같이하지만 COM 개체의 다른 인스턴스에 두 번째 스레드를 추가했는데 변경 사항이 없습니다. X 호출은 항상 스레드 수에 관계없이 Y 시간 간격을 소비합니다. 거기에 정적 잠금 장치가있는 것처럼 ...
그럼에도 불구하고 별도의 프로세스가 각 호출을 동시에 처리 할 수 있습니다. 별도의 스레드가 동일한 동작을하지 못하게하는 요인은 무엇입니까?
COM 구성 요소에 대한 실제 동시 호출을 활성화하려면 어떻게해야합니까?