Necesitamos desarrollar algún tipo de gestión de búfer para una aplicación que estamos desarrollando utilizando C#.Gestión del conjunto de búfer con C#
Esencialmente, la aplicación recibe mensajes de los dispositivos a medida que entran (puede haber muchos en un corto espacio de tiempo). Necesitamos ponerlos en cola en algún tipo de grupo de búferes para que podamos procesarlos de manera administrada.
Estábamos pensando en asignar un bloque de memoria en trozos de 256 bytes (todos los mensajes son menores) y luego utilizar la administración del grupo de búferes para tener un conjunto de almacenamientos intermedios disponibles que puedan usarse para los mensajes entrantes y un grupo de almacenamientos intermedios listo para ser procesado.
Entonces, el flujo sería "Obtener un búfer" (procesarlo) "Liberar búfer" o "Dejarlo en la piscina". También necesitaríamos saber cuándo se llenó el búfer.
Potencialmente, también necesitaríamos una forma de "echar un vistazo" a los buffers para ver cuál es el búfer de mayor prioridad en el grupo en lugar de obtener siempre el siguiente búfer.
¿Ya hay soporte para esto en .NET o hay algún código fuente abierto que podamos usar?
no es una buena idea. cualquier cosa que tenga algo que ver con interoperabilidad causará fragmentación (y dará como resultado excepciones de falta de memoria) debido a que el GC tiene que fijar objetos. –
¿Interopera entre qué? ¿Trapos? Aplicaciones? Procesos? – grieve
Creo que nzpcmad funciona de forma pura sin P/Invoke. – user7116