【问题标题】:What is the most efficient way of storing data read from a socket to be read by another thread?存储从套接字读取以供另一个线程读取的数据的最有效方法是什么?
【发布时间】:2011-10-03 15:43:59
【问题描述】:

所以我有一个使用高速 I/O 完成端口套接字的课程。我收到的数据协议有一个 17 字节的标头和一个在标头中指定的可变数据有效负载,因此我没有为每个标头和有效负载单独调用 ReceiveAsync,而是只抓取一个 1024 字节的缓冲区块以节省 CPU 使用率。

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

我应该查看内存流还是类似的东西?

有什么想法吗?

【问题讨论】:

    标签: c# sockets


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-07-25
        • 1970-01-01
        • 1970-01-01
        • 2011-08-11
        • 1970-01-01
        • 2019-05-13
        • 1970-01-01
        • 2020-03-15
        相关资源
        最近更新 更多