質問

それをクリックしながら、

私はワーカースレッドからDOM内の特定の要素のonclickハンドラを添付していた場合DISPID_DOCUMENTCOMPLETEに、そのイベントは、理由が何であるか、解雇されていませんか?私はメインスレッドからイベントハンドラを添付していた場合、これは正常に動作しているが、私は非同期的に物事をやりたい。

私はスレッド間IID_IWebBrowser2ポインタを渡すためにCoMarshalInterThreadInterfaceInStreamとCoGetInterfaceAndReleaseStreamを使用しています。

役に立ちましたか?

解決

あなたのワーカースレッドが何をしている、とイベントハンドラのスレッドモデルは何ですか?スレッドモデルがSTAの場合は、ワーカースレッドは、定期的にメッセージをポンプするためにいずれかの必要があり、またはそれは同期のために待機している場合、それはCOMのメッセージが処理されることを確認するために、CoWaitFor...機能を使用する必要があります。それとも、あなたのオブジェクトはスレッドセーフで、あなたがこれを行う場合は、あなたにスレッドモデルの誤差を与える可能性のある他のCOMインターフェイスを呼び出すしない自由なスレッドマーシャラーを集約しますが、確認することができます。

おそらく、Webブラウザコントロールは、MTAと互換性がありませんので、あなたはその中でそれを配置することができません。それはそれを除外ようにいずれの場合にも、MTAは、ユーザー・インターフェース・スレッドと互換性がありません。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top