문제

dispid_documentComplete에서 작업자 스레드에서 DOM의 특정 요소에 대한 OnClick 핸들러를 첨부하는 경우 클릭하는 동안 이벤트가 발사되지 않으면 이유는 무엇입니까? 메인 스레드에서 이벤트 핸들러를 첨부하는 경우에는 제대로 작동하지만 비동기 적으로 일을하고 싶습니다.

ComarShalinterthreadinterfaceInstream 및 CogetInterfaceAndreAseStream을 사용하여 스레드간에 iid_iwebbrowser2 포인터를 통과합니다.

도움이 되었습니까?

해결책

작업자 스레드는 무엇을하고 있으며 이벤트 핸들러의 스레딩 모델은 무엇입니까? 스레딩 모델이 STA 인 경우 작업자 스레드는 주기적으로 메시지를 펌핑하거나 동기화를 기다리는 경우 사용해야합니다. CoWaitFor... COM 메시지가 처리 될 수 있도록 함수. 또는 무료 나사산 마샬러를 집계 할 수 있지만, 객체가 스레드 안전한지 확인하고 이렇게하면 스레딩 모델 오류를 줄 수있는 다른 COM 인터페이스를 호출하지 않습니다.

아마도 웹 브라우저 컨트롤은 MTA와 호환되지 않으므로이를 배치 할 수 없습니다. 어쨌든 MTA는 사용자 인터페이스 스레드와 호환되지 않으므로이를 배제합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top