我有一个客户端程序,它使用MarshalByRefObject从远程服务器获取变量。有时程序会在远程服务器上运行,当我试图获取该变量时,我的客户端程序就会挂起。有没有办法让这个变量的调用超时?
MyClass^ refObject = (MyClass^)System::Activator::GetObject(MyClass::typeid, url);
THEVARIABLE objectVariable = refObject->theVariable;发布于 2017-02-03 18:41:53
我看到的唯一方法是实现一个IMessageFilter (COM)。在某些情况下,可以检测到存在从当前STA到另一STA的进程外调用。但AFAIK只有在输入消息(键盘/鼠标)到达时才会执行此操作。
使用消息筛选器,您可以显示类似“等待外部com调用...”之类的内容。在这种情况下,您也可以中止外部呼叫。
请参见CoRegisterMessageFilter和IMessageFilter
https://stackoverflow.com/questions/41964230
复制相似问题