A memória leképező fájlok virtuális memóriát használnak a fájlok áttérképezésére a folyamat címteréhez, majd a folyamat ugyanúgy manipulálja a fájlt, mint a folyamattérben lévő címet, például memcpy és más memóriaműveleti függvények használatával a C nyelven. Ez a módszer jól alkalmazható olyan helyzetekben, amikor egy fájlt vagy egy nagy fájlt gyakran kell feldolgozni, és az IO feldolgozási hatékonysága magasabb, mint a hagyományos IO-é A megosztott memória a memória által leképezett fájlok speciális esete, amelyek egy memóriadarabot térképeznek fel a lemezen lévő fájl helyett. A megosztott memória témája a folyamat, és az operációs rendszer alapértelmezetten minden folyamat számára külön memóriateret oszt ki, és minden folyamat csak az operációs rendszer által kijelölt memóriadarabhoz hozzáférhet, más folyamatokhoz nem. És néha ugyanazt a memóriát kell elérni különböző folyamatok között, mit kell tenned? Az operációs rendszer API-t biztosít a megosztott memóriához való hozzáféréshez, és azok a folyamatok, amelyeknek memóriát kell megosztaniuk, hozzáférhetnek a több folyamat által megosztott memóriához ezen a definiált API-készleten keresztül, és minden folyamat úgy éri el ezt a memóriát, mintha egy merevlemezen lévő fájlhoz nyúlna. A .Net 4.0 vezeti be a System.IO. MemoryMappedFiles névtér, amely a Windows Shared Memory API-kat foglalja magában, megkönnyítve a .Net programozók számára a memória leképezési fájlok használatát. Használj megosztott memóriát C#-ban. A következő App1 kód lehetővé teszi a felhasználó számára, hogy egy sor szöveget beírjon a megosztott memóriába; Az App2 folyamatosan frissíti a konzolt, és a legfrissebb megosztott memóriatartalmat adja ki; Az App3 ugyanazokat a funkciókat valósítja meg, mint az App2, de az olvasási módszer eltérő.
Két módszert alkalmaztak az adatok olvasására. Mivel korábban ritkán használták a folyamatok közötti kommunikációt, ez a módszer csak előzetes megértés. A program túl kezdetleges, és sok mindent nem ítélnek meg. Például, hogyan lehet megosztott memóriát létrehozni, hogyan lehet visszanyerni és törölni, stb.
|