2011-01-19 4 views
3

저는 현재 간단한 ActiveX 컨트롤을 개발 중입니다. 이 컨트롤은 작은 속성 및 메서드 집합을 제공합니다. ActiveX 메서드가 다른 스레드에서 호출 될지 여부는 알 수 없습니다. 이 시나리오를 마주 할 준비가 되려면 컨트롤에 의해 노출 된 각 메서드 내에서 스레드 동기화를 구현하기로 결정했습니다. 이 동기화를 구현해야합니까 아니면 이미 Microsoft ActiveX 프레임 워크에서 구현되어 있습니까? 중복되는 작업을하고 있습니까?ActiveX 컨트롤에 스레드 동기화가 필요합니까?

+0

웹 작업자는 웹 작업자를 사용하지 않아도됩니까? http://www.whatwg.org/specs/web-workers/current-work/ –

답변

1

이 방법은 컨트롤에서 사용하는 스레딩 모델에 따라 다르지만 ActiveX 컨트롤이 "APARTMENT"스레딩 모델 (거의 항상 있어야 함)을 사용한다고 가정하면 ActiveX 컨트롤의 모든 메서드가 호출 될 것이라고 가정 할 수 있습니다. 같은 스레드. 다른 스레드가 해당 스레드에 액세스하면 ActiveX는 자동으로 해당 스레드로 호출을 마샬링하여 해당 스레드에서 수신합니다.

동일한 토큰을 사용하면 획득 한 스레드가 아닌 다른 스레드에서 사용하는 ActiveX 개체 나 COM 인터페이스를 호출하지 않아야합니다. 여러 스레드에서 호출해야하는 경우이를 수행하는 방법이 있지만이 문제의 범위를 벗어납니다.

요약 : 서로 다른 스레드에서 호출되는 메서드에 대해 걱정할 필요가 없으므로 동기화에 대해 걱정할 필요가 없습니다.

+0

감사합니다, Taxilian – gionny

+0

환영합니다 ... 답변을 표시하려고 했습니까? =] – taxilian

관련 문제