我有一个很抽象的问题。我正在开发一个需要不断进行设备通信的项目。我正在将多个设备集成到带有触摸屏的外部处理单元上,以执行某些方法。即触摸屏上的“启动视频通话”按钮可激活继电器,打开显示设备,摄像设备和麦克风设备等。
另一方面,我也试图监控这些设备。他们目前的状态如何?它们是启用/禁用的吗?显示设备当前有什么输入?
到目前为止,我已经提出了两个解决方案,以防止通信中的瓶颈,我一直在轮询(即每两到五秒钟保持一个准确和最新的状态)通态和显示设备的输入状态。
我很好奇是否有其他方法可以解决这个问题。截至目前,我倾向于第二个,因为它对处理单元的压力要小得多,我只是觉得我应该在很多安全措施中构建,以防止实际设备状态的不正确表示。
该项目在.Net 3.5上以C#运行。
答案 0 :(得分:1)
轮询工作,但它不是有趣或最佳。反应性是最好的,但正如你所提到的那样,可能会有一个打嗝,确保你仍在听设备,而不仅仅是袖手旁观。在这种情况下,它自从优化两个过程。当你等待或者没有听到这么长时间的回应时进行轮询,并在你的民意调查返回良好信息时通过民意调查。
那就是说,你不应该担心在各种线程上进行轮询会对单位征税太多。这听起来像一个目的设备,所以只要你没有运行它或一直强调它最大,那么使用你的资源是完全正常的。