2017-11-29 21 views
0

나는 내가 에서 GetInterfaceFromGlobal()이 인터페이스를 사용하는 모든 스레드를 호출 할 필요가 않습니다 글로벌 인터페이스 표 (GIT)를 통해 액티브 인터페이스를 마샬링 할 때? 또는 한 스레드가 마샬링 된 인터페이스에 대한 포인터를 가져 오면 같은 포인터가 다른 스레드에서도 사용할 수 있습니다.다른 스레드가 동일한 정렬 화 된 ActiveX 인터페이스를 재사용 할 수 있습니까?

+0

스레드에서 진행중인 호출이있을 때 프록시 인터페이스 포인터와 연결된 상태를 추측하기 어렵습니다. 이 쓰레드가 프록시를 동시에 사용하지 않는다고 확신 할 수 있다면 그것으로 도망 갈 수도 있습니다. 따라서 마이크로 최적화를 위해 * more * 코드를 작성해야합니다. 어떤 점을 염두에 두어야할까요? –

답변

0

모든 스레드에서 호출해야합니다. 각 스레드는 자체 프록시를 가져옵니다.

이론적으로 하나의 프록시를 사용할 수 있습니다. 작동 할 수도 있습니다. 그러나 GetInterfaceFromGlobal도 생성 스레드에서 호출하면 순수 인터페이스를 직접 반환 할 수 있습니다 ...이 경우에는 프록시가 필요하지 않습니다.

+0

제 경험상 모든 스레드가 적절한 마샬링 된 인터페이스를 필요로하지는 않습니다. 그러나 xMRi는 공식적인 방법이 모든 스레드에 대한 인터페이스를 모든 스레드에 독립으로 마샬링하는 것이 맞습니다. 그렇지 않으면 우리는 회색 영역에 들어가고 좋은 지식 없이는 상황이 잘못 될 수 있습니다. – user3070144

+0

또한 하나의 스레드 GetInterfaceFromGlobal에서 실행되는 경우 프록시를 공유 ... – xMRi