Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 23927|Antwort: 2

[Quelle] C# implementiert Prozessspeicher-Mapping Dateifreigabespeicher

[Link kopieren]
Veröffentlicht am 07.10.2017 18:51:10 | | |
Speichermapping-Dateien verwenden virtuellen Speicher, um Dateien auf den Adressraum des Prozesses zuzuordnen, danach manipuliert der Prozess die Datei genauso wie die Adresse im Prozessraum, zum Beispiel mit memcpy und anderen Speicheroperationen in der C-Sprache. Diese Methode lässt sich gut in Situationen einsetzen, in denen eine Datei oder eine große Datei häufig verarbeitet werden muss und die IO-Verarbeitungseffizienz höher ist als die eines gewöhnlichen IO
Gemeinsamer Speicher ist ein Spezialfall von speicherabgebildeten Dateien, bei denen ein Speicherstück statt einer Datei auf der Festplatte abgebildet wird. Das Thema gemeinsamer Speicher ist Prozess, und das Betriebssystem weist standardmäßig jedem Prozess einen Speicherplatz zu, wobei jeder Prozess nur auf einen vom Betriebssystem zugewiesenen Speicher zugreifen darf, aber nicht auf andere Prozesse. Und manchmal muss man auf denselben Speicher zwischen verschiedenen Prozessen zugreifen – was sollte man tun? Das Betriebssystem stellt eine API zur Verfügung, um Zugriff auf gemeinsamen Speicher zu schaffen, und Prozesse, die Speicher teilen müssen, können über diese definierten APIs auf den von mehreren Prozessen geteilten Speicher zugreifen; jeder Prozess greift auf diesen Speicher zu, als würde er auf eine Datei auf einer Festplatte zugreifen. Das .Net 4.0 führt die System.IO ein. MemoryMappedFiles-Namensraum, eine Klasse, die die Windows Shared Memory-bezogenen APIs kapselt und es .Net-Programmierern erleichtert, Speichermapping-Dateien zu verwenden.
Nutze gemeinsam genutzten Speicher in C#. Der folgende Code für App1 ermöglicht es dem Benutzer, eine Textzeile in den gemeinsamen Speicher einzugeben; App2 aktualisiert die Konsole ständig und gibt die neuesten Inhalte des gemeinsamen Speichers aus; App3 implementiert die gleichen Funktionen wie App2, aber die Lesemethode ist anders.

Zwei Methoden wurden verwendet, um die Daten zu lesen.
Da die Kommunikation zwischen Prozessen zuvor selten verwendet wurde, ist diese Methode nur ein vorläufiges Verständnis. Das Programm ist zu rudimentär, und es gibt viele Dinge, die nicht bewertet werden. Zum Beispiel, wie man einen gemeinsamen Speicher erstellt, wie man ihn abruft und löscht usw.




Vorhergehend:.net/c# CryptoJS aes verschlüsselter Quellcode
Nächster:activemq Persistent Store ist Full
 Vermieter| Veröffentlicht am 03.10.2025 16:10:57 |
.NET/C# implementiert das Programm Singleton basierend auf Mutex und MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

.NET/C#-Eltern-Kind-Prozesse kommunizieren über MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com