일부 COM 개체를 실행하는 non-singleton WCF (독립 실행 형) 서비스가 있습니다. 비 -WCF 환경에서 Thread.Start를 사용하면 이러한 COM 객체가 다른 스레드에서 병렬로 실행되어 모든 CPU를 활용하고 동시에 완료 할 수 있습니다.ThreadingModel 무료 WCF 서비스가 작동하지 않습니다.
그러나 특정 WCF 서비스에서 사용하려고하면 이상한 점이 있습니다. 레지스트리에 ApartmentState이 두로 설정하면
는, WCF는 작동하지만 작업은 서로의 완료를 기다리지, 시리얼 것으로 보인다. CPU 사용량은 CPU 1 개를 결코 초과하지 않습니다. 그것은 STA에서 실행되도록 강제됩니다.
레지스트리에있는 경우 아파트 상태이 무료으로 설정되면 충돌합니다.
나는 그것을 얻지 못한다. 이런 종류의 배관 공사가 방해 받고 있습니까?
내 WCF 서비스 클래스 다음과 같은 속성이 있습니다
[인 ServiceBehavior (AddressFilterMode = AddressFilterMode.Any, InstanceContextMode = InstanceContextMode.PerCall, 들면, ConcurrencyMode = ConcurrencyMode.Single)]
COM 개체가 글로벌/정적 .