Behalte eine MemoryMappedFile nach dem Dispose aktiv

8

Ich muss auf eine Shared-Memory-Map-Datei zugreifen (die von einem separaten Programm erstellt und verwaltet wird). Dazu benutze ich

%Vor%

Wenn ich die Anwendung schließe rufe ich über diese auf:

%Vor%

Aber es scheint, als würde etwas, was ich hier mache, die Speicherzuordnungsdatei löschen, weil das andere Programm, das dies verwendet, beginnt, geschützte Speicherfehler zu bekommen.

Wenn ich das _map entsorgere, zerstört es tatsächlich die speicherabgebildete Datei, obwohl es nicht geerbt ist?

Aktualisieren

Stellt sich heraus, dass das andere Programm, das nicht unter meiner Kontrolle stand, böse Dinge tat, nachdem ich ihm signalisiert hatte, in den Leerlaufmodus zu gehen (unmittelbar bevor die Speicherkarte abgelegt wurde).

Wenn 'MemoryMappedFile.OpenExisting' mit 'HandleInheritability.None' verwendet wird, wird die Speicherzuordnungsdatei nach der Entsorgung nicht zerstört.

    
Meirion Hughes 08.06.2013, 18:26
quelle

1 Antwort

2

Nein, ein durch Öffnen von OpenExisting () geöffnetes MemoryMappedFile zerstört das zugrunde liegende MMF nicht.

Der Prozess, der die Windows-API CreateFileMapping () aufgerufen hat, steuert die Lebensdauer der MMF- und OpenExisting () -Aufrufe stattdessen OpenFileMapping ().

    
Matthew Watson 24.07.2013, 14:13
quelle

Tags und Links