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.
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 ().
Tags und Links c# shared-memory winapi