当需要在整个应用程序生命周期中运行 I/O 监听器时,在 4.5 框架上运行的 C# 5.0 首选哪种并发模型?
我已经确定生产者-消费者模式最适合处理我收到的内容,但应该支持什么样的基础架构?
会建议一个简单的 Thread thread = new Thread(ThreadStart(method))
吗?还是首选 Task
或 Async/Await
模型?
这是一个有点急功近利的问题,但由于我处于设计的早期阶段,所以我更愿意确保基础牢固。我对其他语言的直觉 react 是,在后台运行一个简单的线程是最好的,但 C# 中过多的并行框架让我偏离了正轨。
如果有任何相关性,我的应用程序中的轮询时间将由 I/O 读取超时处理。
更新:
我指的 I/O 是一个 FTDI 设备,其中的字节可能随时被设备推送到 PC,这取决于板载 Controller 的状态。因此,我总是需要准备好获取数据并进行处理。我使用的 API 基于 FTDI 供应商提供的 D2XX DLL。
最佳答案
如果我正确解释了您的“I/O 监听器”,那么您应该始终进行连续的异步读取操作。不需要线程。
关于C# 并发 - 长时间运行任务的首选方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886722/