如何测试MarshalByRefObject是否有效

本文关键字:MarshalByRefObject 是否 有效 测试 何测试 | 更新日期: 2023-09-27 18:24:07

在VS2010 C#项目中,我们有一个从MarshalByRefObject派生的类,我们使用Activator.GetObject进行设置。我们使用这个派生类通过网络与机器进行通信。

有时,目标机器打开并能够被ping,但它没有运行我们想要与之交谈的程序,这会导致30秒的等待,然后出现异常。有没有办法判断我派生的MarshalByRefObject是否有效?

目前,try/catch正在处理这种情况,但30秒的等待是不可接受的。

如何测试MarshalByRefObject是否有效

您可以尝试让Task调用Ping()方法,并在任务上使用显式超时。。。

Task task = new Task(() => { try { obj.Ping(); } catch {} });
task.Start();
if(!task.Wait(1000)) throw new TimeoutException();
// handle other task exceptions etc
相关文章:
  • 没有找到相关文章