2017-01-31 9 views
0

MarshalByRefObjectを使用してリモートサーバーから変数を取得するクライアントプログラムがあります。時にはプログラムがリモートサーバー上にホースアップすることがあり、その変数を取得しようとするとクライアントプログラムがハングします。この変数の呼び出しをタイムアウトする方法はありますか?MarshalByRefObjectによりC++プログラムがハングする

MyClass^ refObject = (MyClass^)System::Activator::GetObject(MyClass::typeid, url); 

THEVARIABLE objectVariable = refObject->theVariable; 

答えて

0

私が見る唯一の方法は、IMessageFilter(COM)を実装することです。場合によっては、現在のSTAから別のSTAへのプロセス外コールが存在することを検出することが可能である。しかしAFAIKは、入力メッセージ(キーボード/マウス)が到着したときにのみ行われます。

メッセージフィルタを使用すると、「外部のCOMコールを待っています...」のようなメッセージを表示できます。この場合も、外線通話を中断することがあります。

「CoRegisterMessageFilter」、およびIMessageFilter

関連する問題