Нам нужно разработать какое-то управление буфером для приложения, которое мы разрабатываем с использованием C#.Управление пустым буфером с использованием C#
По сути, приложение получает сообщения от устройств по мере их поступления (может быть много за короткое время). Нам нужно поставить их в очередь в каком-то буферном пуле, чтобы мы могли обрабатывать их управляемым образом.
Мы подумывали выделить блок памяти в 256-байтовых кусках (все сообщения меньше этого), а затем с помощью управления пулом буферов иметь пул доступных буферов, которые могут использоваться для входящих сообщений и пула буферов готовые к обработке.
Таким образом, поток будет «Получить буфер» (обработать его) «Буфер освобождения» или «Оставьте его в пуле». Нам также необходимо знать, когда заполнялся буфер.
Потенциально, нам также нужен способ «заглянуть» в буферы, чтобы увидеть, что буфер с самым высоким приоритетом в пуле, а не всегда получать следующий буфер.
Есть ли поддержка для этого в .NET или есть какой-то открытый исходный код, который мы могли бы использовать?
Неплохая идея. все, что делает что-либо с interop, приведет к фрагментации (и приведет к исключениям из памяти) из-за того, что GC должен связывать объекты. – 2009-01-22 06:13:53
Взаимодействие между чем? Потоки? Приложения? Процессы? – grieve 2009-01-25 20:03:46
Я думаю, что nzpcmad работает с чистым управлением без P/Invoke. – user7116 2009-12-04 22:06:24