情况:
我需要在我的 ASP.NET Core 项目中创建某种通过 Modbus TCP/IP 进行通信的控制部分。
与 Modbus 通信正常,但我需要永久读取一些 Modbus 地址,并且需要设置它们的间隔。我在db中有这样的结构。
我现在有一个名为 CommunicationRepository 的单例,它是这个协议的控制器,并且具有从模块读取、写入模块、具有来自模块的数据结构等的方法,并创建 CommunicationRunners。
CommunicationRunner 可以等待间隔时间过去,然后从 CommunicationRepository 触发委托 - 然后读取特定的 Modbus 地址。
问题: 现在它是由异步完成的,这会减慢其他所有事情的速度——在页面中导航、来自 web api 的响应等。当然,这个问题可以在很小的时间间隔内(例如 10 毫秒)被识别出来。
我怎样才能使它更稳定,无窃听?我必须使用线程吗?如果,那么究竟如何?
我会很感激一些代码示例。
谢谢你,看看图片。