我有几辆车每 10 秒后通过 GPS 向服务器发送数据,服务器应该监听和解码数据以存储在数据库(Sql Server)中。每分钟将有数百个条目。我现在有一个单线程代码,这并不是很有帮助。在一个条目的处理时间内,很少有条目被丢弃。我想创建一个多线程代码,以便当一个线程忙于处理时,将数据包移动到下一个可用线程。
据我所知,在查看了几个论坛后,我意识到“产量”将有助于解决这个问题。但是我找不到关于如何使用 yield 的正确示例?
有人可以通过发布一些示例来帮助我解决这个问题吗?
最佳答案
我建议在接收上设置异步回调,然后将数据推送到队列中,然后从另一个线程上的队列中处理出来。确保锁定该队列或使用 ConcurrentQueue 以免将线程碰撞在一起。
关于.Net UDP 使用多线程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10803424/