存储从套接字读取的数据以便由另一个线程读取的最有效方法是什么?

时间:2011-10-02 21:48:50

标签: c# sockets

所以我有一个使用高速I / O完成端口套接字的类。我收到的数据协议有一个17字节的头,以及一个在头中指定的可变数据有效载荷,所以不是为每个头和有效载荷单独调用ReceiveAsync而是我只是抓取一个1024字节的缓冲块而不是保存CPU使用率。

但是,我不确定存储这些数据的最佳方法是什么?它必须是有序的,我想要一个单独的线程来处理,而不会出现任何线程或性能问题。

我应该查看内存流或其他内容吗?

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

不要存储它。并且不要使用另一个线程来读取它。我会使用相同的线程将其反序列化为更有用的东西。然后将其排入另一个线程,让IOCP线程继续进行处理。

答案 1 :(得分:0)

不要存储它。让其他线程在需要时读取它。