Like GuyFawkes, me gustaría utilizar MemoryStream para almacenar una gran cantidad de datos, pero sigo encontrando las excepciones de 'falta de memoria'.
La respuesta de TomTom es lo que me gustaría hacer: utilizar una implementación que no requiera un bloque contiguo, pero me pregunto si ya hay una implementación gratuita disponible, para que me permita escribir una.¿Hay una implementación de código abierto de MemoryStream que no usa memoria contigua?
¿Alguien sabe de una buena y gratuita reimplantación de MemoryStream que puede funcionar con grandes transmisiones?
EDIT:
solución El archivo proyectado en memoria es muy interesante y que será recordar que para otros proyectos, sin embargo, como dice Henk, se aleja demasiado de la abstracción que es el objetivo de MemoryStream. Específicamente, el requisito de una capacidad conocida.
Los datos que la reposición deberá manejar serán, en algunos casos, muy grandes, pero en otros relativamente pequeños (y no se sabe cuál será hasta que sea demasiado tarde;)); Además, muchas instancias de la clase existirán al mismo tiempo. En última instancia, el trabajo requerido para utilizar MemoryMappedFiles (para determinar un tamaño apropiado para cada uno) sería equivalente al de implementar la solución de TomTom.
un problema similar en StringBuilder se fijó en .NET 4 mediante la alteración de la aplicación a utilizar cuerdas. Buscar en Google "cuerda de memoria" solo produce éxitos de programadores que están al final de uno. Un sistema operativo de 64 bits es la solución de cien dólares. –
OK, he tomado la falta de (barra Eric y dtb que eran interesantes pero no exactamente lo que necesitaba) respuestas como un 'no' y así lo he implementado yo mismo. No es particularmente complicado, pero lo subiré si alguien puede sugerir el mejor lugar. – sebf
@HansPassant, las cuerdas son una lectura interesante, gracias (¡incluso si googlear "memorystream rope" no es exactamente inspirador!) Para mi proyecto, aunque solo necesitaba flujos del orden de cientos de megabytes, bastaba con una simple lista en mi implementación. – sebf