2011-10-02 47 views
2

所以我有一个班使用高速I/O完成端口套接字。我收到的数据的协议有一个17字节的头部,并在头部指定了一个可变数据有效载荷,所以不是分别为每个头部和有效载荷调用ReceiveAsync,而是只抓取一个1024字节的缓冲区块以节省CPU使用量。从另一个线程读取套接字读取数据的最有效方式是什么?

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

我应该看看一个内存流或沿着这些线?

任何想法?

回答

1

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

0

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