Нам нужно разработать какое-то управление буфером для приложения, которое мы разрабатываем с использованием C #.
По сути, приложение получает сообщения от устройств по мере их поступления (в короткий промежуток времени их может быть много). Нам нужно поставить их в очередь в некотором буферном пуле, чтобы мы могли обрабатывать их управляемым образом.
Мы думали о выделении блока памяти в кусках по 256 байт (все сообщения меньше этого), а затем об использовании управления пулом буферов, чтобы иметь пул доступных буферов, которые можно использовать для входящих сообщений, и пул готовых буферов. быть обработанным.
Таким образом, поток будет "Получить буфер" (обработать его), "Освободить буфер" или "Оставить его в пуле". Нам также нужно знать, когда буфер заполняется.
Потенциально нам также понадобится способ "заглянуть" в буферы, чтобы увидеть, что такое буфер с наивысшим приоритетом в пуле, а не всегда получать следующий буфер.
Уже есть поддержка этого в .NET или есть какой-то открытый исходный код, который мы могли бы использовать?