2011-10-02 46 views
2

所以我有一個班使用高速I/O完成端口套接字。我收到的數據的協議有一個17字節的頭部,並在頭部指定了一個可變數據有效載荷,所以不是分別爲每個頭部和有效載荷調用ReceiveAsync,而是隻抓取一個1024字節的緩衝區塊以節省CPU使用量。從另一個線程讀取套接字讀取數據的最有效方式是什麼?

但是,我不確定存儲這些數據的最佳方式是什麼?它必須是有序的,我想要一個單獨的線程來執行處理,而不會有任何線程或性能問題。

我應該看看一個內存流或沿着這些線?

任何想法?

回答

1

不要存儲它。並且不要使用其他線程來閱讀它。我會使用相同的線程將其反序列化爲更有用的東西。然後將它排入另一個線程,並讓IOCP線程繼續處理。

0

不要存儲它。讓其他線程在需要時讀取它。