FCL Interprozesskommunikation mit Memory-Mapped Files
Kommentare

Memory-Mapped Files erlauben das Bereitstellen von Informationen über den Hauptspeicher und werden gerne zur Interprozesskommunikation eingesetzt.

Listing 1 zeigt, wie ein solches Memory-Mapped File erzeugt und beschrieben werden kann. Zunächst wird ein Memory-Mapped File mit dem Namen someMemoryMappedFile und einer maximalen Größe von 1000 Bytes erzeugt. Zum Zugriff auf dieses File wird anschließend mittels CreateViewStream ein Stream erzeugt, welcher den Zugriff auf einen Ausschnitt (View) des Memory-Mapped Files gewährt. Da an dieser Stelle keine weiteren Parameter angegeben werden, erstreckt sich dieser Ausschnitt auf das gesamte File. Überladungen dieser Methode erlauben jedoch die Angabe eines Offsets sowie einer Länge für den zu bearbeitenden Ausschnitt. Darüber hinaus existiert auch eine Überladung, welche zusätzlich die Angabe von Zugriffsberechtigungen erlaubt. Anschließend wird über einen BinaryWriter der String Hello World in den Stream geschrieben und die Datei geschlossen. Im zweiten Teil von Listing 1 wird das Memory-Mapped File erneut geöffnet und gelesen.

Listing 1

using (var file = MemoryMappedFile.CreateNew("someMemoryMappedFile", 1000))
{
using (var stream = file.CreateViewStream())
{
var writer = new BinaryWriter(stream);
writer.Write("Hello World!");
}
}
[...]
using (var file = MemoryMappedFile.OpenExisting("someMemoryMappedFile"))
{
using (var stream = file.CreateViewStream()) {
    var reader = new BinaryReader(stream);
    Console.WriteLine(reader.ReadString());
}
}
  

Dr. Holger Schwichtenberg (MVP) und FH-Prof. Manfred Steyer arbeiten bei www.IT-Visions.de als Softwarearchitekten, Berater und Trainer für .NET-Technologien. Dabei unterstützen sie zahlreiche Unternehmen beim Einsatz von .NET und entwickeln selbst in größeren Projekten. Sie haben zahlreiche Fachbücher geschrieben und gehören seit vielen Jahren zu den Hauptsprechern auf der BASTA. Manfred Steyer ist zudem verantwortlich für den Fachbereich „Software Engineering“ der Studienrichtung „IT und Wirtschaftsinformatik“ an der FH CAMPUS 02 in Graz. Dr. Holger Schwichtenberg unterrichtet in Lehraufträgen an den Fachhochschulen Münster und Graz.
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -