在这个问题上,我可能完全不在树林里,但是。由于TAP(基于任务的异步模式,see this thread, to learn more)将后台操作逻辑与UI / ViewModel更新代码分开,因此在与串口通信时这样做会很好。
然而,serialport使用EAP(http://msdn.microsoft.com/en-us/library/jj152938%28v=vs.110%29.aspx),或者我相信如此。
所以我的问题基本上是,TAP可以与serialport一起使用,应该吗?
//里卡德
PS。如果有人可以创建TAP / EAP / APM标签(或简单的Asynchronous-Patterns标签),那么这个qeustion可以被正确标记,我将非常感激(我缺乏代表).ds
答案 0 :(得分:2)
我们知道TAP适合在内存中进行大量计算操作,对IO绑定操作有害,并且通过串行端口进行通信是 IO绑定操作
因此,我不认为从EAP转为TAP是个好主意。因为:
例如,您的代码安装了一个任务,该任务将一些数据发送到COM端口。另一方面,设备将获取要处理的数据,处理数据所需的时间可能是几秒钟。在那段时间里,你会把这个任务,也就是线程,在将它释放回处理器之前几秒钟?这真的很低效,恕我直言。
PS:你能透露一下你想要实现的目标吗?