我需要从Windows 10通用应用程序与通过TCP / IP连接的某些外围设备进行通信。具体来说,这些是MODBUS设备,我需要不断轮询设备(每秒多次),以便读取状态值并相应地对它们采取行动。应用程序将有多种形式,每种形式都能够根据从外设读取的值接收数据。
我当前的(Win32)实现运行了几个后台线程,只需发送读取命令,读取结果,然后根据需要通过引发各种表单可以订阅的事件来处理结果,我相信这是方法我也应该参加UWP。
使用UWP时有更好的方法吗?如果将应用程序移到后台并且/或者我可以阻止暂停,这会起作用吗?
感谢。
答案 0 :(得分:2)
您提出的实施听起来像是需要轮询这些设备的应用程序的最佳方法。轮询UI线程并对页面的事件进行编组以从中收集处理过的数据。
最小化时运行:如果您只需要在前台应用程序运行时收集此信息,则可以选择“扩展执行”。当您最小化应用程序时,它将自动移至暂停状态,除非您请求某种形式的终身扩展。您可以申请Unspecified Extended Execution,其在使用电池电量时有限制,可根据用户设置删除。这将使应用程序在最小化时运行,但不能在关闭时运行。