c#库类:需要多线程

本文关键字:多线程 库类 | 更新日期: 2023-09-27 18:11:04

我正在开发一个使用串行端口与控制电路通信的库类。如果安装了更多的传感器,那么电路发送响应字符串需要更长的时间。例如,如果只安装了一个传感器,我应该等待100ms才能读取输入缓冲区,但如果安装了6个传感器,我应该等待100ms + 6 * 20ms。对于某些功能(如果连接了最大数量的传感器),我可能需要在控制器发送响应字符串之前等待长达9秒。

我的问题是我应该在库类中设置多线程,还是应该把这个责任留给客户端代码?

谢谢!

c#库类:需要多线程

您是否希望库以这样一种方式实现,即在进程完成时发生回调,或者如果您只是想阻塞线程并允许前端开发人员使用多线程做他们想做的事情,这取决于您。

我想说,从库的角度来看,仅仅阻塞线程是最简单的,并且可能是最期望的(这听起来像一个简单的设置,我不期望内置任何复杂的线程管理),只是确保记录它的行为,以便下一个开发人员可以轻松地选择他们是否想要线程。

这是一个设计问题。如果您设计了库,那么您就选择了解决方案。如果你的老板或其他人定义了合同,那么你就按照他/她的意思去做。

我将实现这两个,即一个基本类的简单场景只有一个传感器,和一些类似多线程包装类的情况下,用户想要使用更多的传感器与后台线程。