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