我有一个使用.Net远程处理与远程硬件(相当专业的相机)进行通信的应用程序。它大部分都运行良好。从设备捕获图像需要几秒钟,这很好-我有一个工作线程来执行此操作,并且我将TcpClientChannel配置为设置了合适的超时时间:
Dim dict as IDictionary = new Hashtable
dict.Add("connectionTimeout", 1000)
dict.add("timeout", 15000)
我面临的挑战是,当应用程序关闭时,我需要向远程对象发出“ GrabStop”命令,但我不能保证远程对象仍然存在。
Try
If MyRemote IsNot Nothing Then
MyRemote.GrabStop()
End If
Catch ex As Exception
End Try
如果远程对象不存在/响应失败,则会安全失败,在15秒后超时,而不是我可能期望的1秒。在开发环境中,这对我来说并不是真正的问题,但是对于发行版,它本身显示为Windows“此应用程序未响应...等待/关闭”消息。
因此,将“ connectionTimeout”插入此处会很好-延迟1秒完全可以-或能够即时更改超时。尽管进行了很好的搜索,但我似乎找不到解决此问题的方法。线索感激不尽。