【发布时间】:2014-02-13 18:24:39
【问题描述】:
目前我正在尝试组建一个异步 tcp 服务器来接收我想要处理的数据,提取值并插入到 sql server。
我认为最好的基本概念是,一旦接收到数据并确认为整个消息,则应将消息传递到某种集合以等待基于 FIFO 的处理,该集合将解析值并将它们插入到 sql server。我想这就是所谓的消费者/生产者模式。
我一直在研究最好的收集/方法,到目前为止,我已经看到了使用 async/await 的 BlockingCollection、ConcurrentCollection 和 BufferBlock,我认为这可能是要走的路,但老实说我不确定.
我发现的最好的例子是在 Stephen Cleary 的博客上,特别是这篇文章, http://blog.stephencleary.com/2012/11/async-producerconsumer-queue-using.html
我的主要保留意见是我绝不想减慢或中断消息的接收,这对我来说建议使用可以在上面的链接中看到的多个生产者/消费者示例,但我想知道的是;
- 我的假设是否正确,或者在我的场景中是否有更合适的方法。
- 如果我的假设是正确的,那么考虑到我的用例,任何人都可以提出最佳的实现方式。
非常感谢任何和所有的帮助。
【问题讨论】:
标签: c# .net collections task-parallel-library async-await