gpt4 book ai didi

c# - 使用 C# 进行缓冲池管理

转载 作者:太空狗 更新时间:2023-10-29 21:11:35 25 4
gpt4 key购买 nike

我们需要为使用 C# 开发的应用程序开发某种缓冲区管理。

本质上,应用程序在设备进入时接收来自设备的消息(短时间内可能有很多)。我们需要将它们排入某种缓冲池,以便我们可以以托管方式处理它们。

我们正在考虑在 256 字节 block 中分配一个内存块(所有消息都小于该 block ),然后使用缓冲池管理来拥有一个可用于传入消息的可用缓冲区池和一个准备好的缓冲区池待处理。

因此流程将是“获取缓冲区”(处理它)“释放缓冲区”或“将其留在池中”。我们还需要知道缓冲区何时填满。

可能,我们还需要一种方法来“窥视”缓冲区以查看池中优先级最高的缓冲区是什么,而不是总是获取下一个缓冲区。

.NET 中是否已经对此提供了支持,或者是否有一些我们可以使用的开源代码?

最佳答案

C# sharps 内存管理实际上非常好,因此您无需使用缓冲区池,只需准确分配所需内容并将其放入队列即可。处理完缓冲区后,让垃圾收集器处理它。

另一种选择(对您的应用程序知之甚少)是在收到消息时对其进行最低限度的处理,并将它们变成完整的对象(具有优先级和所有),然后您的队列可以通过调查来确定它们的优先级正确的属性或方法集。

如果您的消息传入速度太快,即使进行最少的处理,您也可以使用两个队列系统。一个只是未处理缓冲区的队列,下一个队列是从缓冲区构建的消息对象队列。

希望对您有所帮助。

关于c# - 使用 C# 进行缓冲池管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/281924/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com