¿Cuál es un ejemplo simple de cómo usar SafebUffer? Es decir, ¿cómo creo e inicializo uno? La documentación de MSDN no parece mostrar esto.Cómo usar un SafeBuffer en C#
Respuesta
No se puede, es una clase abstracta. La única implementación concreta visible es SafeMemoryMappedViewHandle, una clase auxiliar para las clases en el espacio de nombres System.IO.MemoryMappedFiles. Tiene un constructor no accesible, ya que solo puede ser inicializado correctamente por la tubería que hace que los archivos mapeados en memoria funcionen.
El caso de uso es un IntPtr que se asigna a la memoria no administrada, administrada por un identificador. Bastante raro en la API de Windows, MapViewOfFile o GlobalAllocPtr, por ejemplo. Si desea crear uno propio, debe derivar de SafeBuffer para que pueda llamar a su constructor y llamar, por ejemplo, Adquirir un puntero. La mayor parte de esto no es seguro. ¿Qué estás realmente tratando de hacer?
- 1. Cómo usar un dll C# en IronPython
- 2. Cómo usar Int64 en C#
- 3. cómo usar RegisterHotKey() en C#?
- 4. cómo usar XMLRPC en C#
- 5. Cómo usar XQuery en C#
- 6. cómo usar inverso en C
- 7. Cómo usar SFTP en C#
- 8. ¿Cómo usar yaml-cpp en un programa C++ en Linux?
- 9. C#: Cómo usar SHOpenFolderAndSelectItems
- 10. ¿Cómo puedo definir y usar un ENUM en Objective-C?
- 11. ¿cómo podemos usar un archivo por lotes en C++?
- 12. ¿Cómo puedo usar un diccionario muy grande en C#?
- 13. Cómo usar y cuándo es bueno usar memmove en C?
- 14. Cómo usar Scintilla .NET en C# Project?
- 15. Cómo usar Cin Space en C++?
- 16. Cómo usar StreamReader en C# (novato)
- 17. Cómo usar varias teclas modificadoras en C#
- 18. ¿Cómo puedo usar debugbreak() en C#?
- 19. ¿Cómo puedo usar mysql en C++?
- 20. Cómo usar el reloj() en C++
- 21. ¿Cómo debo usar FormatMessage() correctamente en C++?
- 22. Cómo usar C# Dll en vC++?
- 23. ¿Cómo puedo usar GetNextWindow() en C#?
- 24. ¿Puedo usar C# y C++/CLI en un solo ensamblaje?
- 25. ¿Puedes usar librerías C++ en un proyecto Cocoa (Obj-C)?
- 26. ¿Cómo usar las guías en C#?
- 27. Cómo usar la configuración en Visual C#
- 28. C# Cómo usar las interfaces
- 29. Cómo usar C++ Boost's regex_iterator()
- 30. Cómo usar SQL en un archivo CSV
Estoy tratando de leer un archivo muy grande (bytestream) del disco en un UnmanagedMemoryStream. El archivo es mayor que el número máximo de bytes que puede contener bytearray. – ManInMoon
Bueno, use el soporte de .NET 4.0 para archivos asignados de memoria. Inútil reinventar MemoryMappedViewStream. En realidad, no hace que leer el archivo sea más rápido. –
Gracias Hans. Lo he intentado pero MemoryMappedFiles es muy lento – ManInMoon