Was ist ein einfaches Beispiel für die Verwendung von SafebUffer? Das heißt, wie erstelle und initialisiere ich einen? Die MSDN-Dokumentation scheint dies nicht anzuzeigen.So verwenden Sie einen SafeBuffer in C#
Antwort
Sie können nicht, es ist eine abstrakte Klasse. Die einzige sichtbare konkrete Implementierung davon ist SafeMemoryMappedViewHandle, eine Hilfsklasse für die Klassen im Namespace System.IO.MemoryMappedFiles. Es verfügt über einen nicht zugreifbaren Konstruktor, da es nur durch die Installation ordnungsgemäß initialisiert werden kann, die Speicherabbilddateien funktioniert.
Der Anwendungsfall ist ein IntPtr, der nicht verwaltetem Speicher zugeordnet ist und von einem Handle verwaltet wird. Ziemlich selten in der Windows-API, MapViewOfFile oder GlobalAllocPtr zum Beispiel. Wenn Sie Ihre eigenen erstellen möchten, müssen Sie von SafeBuffer ableiten, damit Sie den Konstruktor aufrufen und beispielsweise AcquirePointer aufrufen können. Das meiste ist unsicher. Was sind Sie wirklich versuchen zu tun?
- 1. So verwenden Sie einen URI in Java
- 2. So verwenden Sie einen Textmarker in JTextArea
- 3. So deklarieren Sie einen Delegaten in C++/CLI und verwenden Sie es in C#
- 4. So implementieren Sie einen Grapher in C#
- 5. So verwenden Sie enum in C
- 6. So speichern Sie einen Funktionszeiger in C#
- 7. Wie ActiveSupport :: SafeBuffer in String zu konvertieren?
- 8. So verwenden Sie einen Block als Methodeneingabe
- 9. So schlafen Sie einen C++ Boost-Thread
- 10. So verwenden Sie "SHFILEOpstruct"
- 11. So verwenden Sie ein Bild für einen Rahmen in CSS
- 12. So verwenden Sie einen dynamischen URI in From()
- 13. So verwenden Sie Splitter
- 14. So verwenden Sie appStoreReceiptURL
- 15. So verwenden Sie @ColorInt
- 16. So verwenden Sie benutzerdefinierte Schlüsselwörter in SVN
- 17. So verwenden Sie hier
- 18. So verwenden Sie Singleton-Objekt in ein Objektiv-C-Block
- 19. So verwenden Sie UserControl in Windows-Formulare Programmierung C#
- 20. So verwenden Sie sprintf mit Zeichenzeiger in C
- 21. So verwenden Sie die Klasse C# singleton in Orchard Designs
- 22. So verwenden Sie Kopierkonstruktoren richtig
- 23. So weisen Sie einer C# -Funktion einen C++ - Zeiger zu
- 24. So verwenden Sie ignore_user_abort()
- 25. So erstellen Sie einen grundlegenden endlichen Automaten in Objective-C
- 26. So verwenden Sie kAudioSessionProperty_OverrideCategoryMixWithOthers
- 27. So verwenden Sie duplizierten()
- 28. So verwenden Sie WaitForSingleObject
- 29. So verwenden Sie OAuth2 in RestSharp
- 30. C# Vector2 So verschieben Sie ein Objekt in einen Winkel
Ich versuche, eine sehr große Datei (Bytestrom) von der Festplatte in einen UnmanagedMemoryStream zu lesen. Die Datei ist größer als die maximale Anzahl von Bytes, die ein Bytearray enthalten kann. – ManInMoon
Nun, verwenden Sie die .NET 4.0-Unterstützung für Memory-Mapped-Dateien. Sinnlos, MemoryMappedViewStream neu zu erfinden. Es macht das Lesen der Datei nicht schneller. –
Danke Hans. Ich habe das versucht, aber MemoryMappedFiles sind sehr langsam – ManInMoon