所以我有一个使用高速I/O完成端口套接字的类。我接收的数据协议(protocol)有一个 17 字节的 header 和一个在 header 中指定的可变数据有效负载,因此我没有为每个 header 和有效负载单独调用 ReceiveAsync,而是抓取一个 1024 字节的缓冲区 block 以节省 CPU 使用率。
但是,我不确定存储这些数据的最佳方式是什么?它必须是有序的,我想要一个单独的线程来进行处理,而不会出现任何线程或性能问题。
我应该查看内存流还是类似的东西?
有什么想法吗?
最佳答案
不要存储它。并且不要使用另一个线程来阅读它。我会使用相同的线程将其反序列化为更有用的东西。然后将其放入另一个线程中,让 IOCP 线程继续处理。
关于c# - 存储从套接字读取的数据以供另一个线程读取的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7629454/