2017-11-29 19 views
0

ActiveXインターフェイスをグローバルインターフェイステーブル(GIT)経由でマーシャリングする場合、このインターフェイスを使用するスレッドGetInterfaceFromGlobal()からに電話する必要がありますか?代わりに、あるスレッドがマーシャリングされたインタフェースへのポインタを取得すると、その同じポインタは他のスレッドからも使用するのに適していますか?異なるスレッドが同じ整列化されたActiveXインターフェイスを再利用できますか?

+0

スレッドに進行中の呼び出しがあるときに、プロキシインターフェイスポインタに関連付けられている状態の量を推測するのは難しいです。これらのスレッドが同時にプロキシを使用しないようにすることができれば、あなたはそれを手放すかもしれません。したがって、このマイクロ最適化を行うには、* more *コードを記述する必要があります。あなたが念頭に置いたことはできません: –

答えて

0

すべてのスレッドから呼び出す必要があります。各スレッドは独自のプロキシを取得します。

理論的には、1つのプロキシを使うことができます...うまくいくかもしれません。しかし、GetInterfaceFromGlobalは、作成中のスレッドから呼び出すと、純粋なインタフェースを直接返すこともあります。この場合、プロキシは必要ありません。

+0

私の経験では、すべてのスレッドが適切なマーシャリングされたインターフェイスを必要とするわけではありません。しかし、xMRiは正式な方法は、すべてのスレッドを独立してマーシャリングすることです。それ以外の場合はグレーゾーンに入り、理由がわからないと問題が発生する可能性があります。 – user3070144

+0

また、GetInterfaceFromGlobalが1つのスレッドから実行されると、プロキシを共有します... – xMRi

関連する問題