Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 23927|Odpověď: 2

[Zdroj] C# implementuje mapování paměť procesů pro sdílení souborů

[Kopírovat odkaz]
Zveřejněno 07.10.2017 18:51:10 | | |
Soubory mapování paměti používají virtuální paměť k mapování souborů do adresního prostoru procesu, poté proces manipuluje se souborem stejně jako s adresou v procesním prostoru, například pomocí memcpy a dalších paměťových operačních funkcí v jazyce C. Tato metoda může být dobře použita v situacích, kdy je třeba soubor nebo velký soubor zpracovávat často a efektivita zpracování IO je vyšší než u běžných IO
Sdílená paměť je speciální případ souborů mapovaných na paměť, které mapují část paměti místo souboru na disku. Předmětem sdílené paměti je proces a operační systém přiděluje každému procesu paměťový prostor ve výchozím nastavení, přičemž každý proces má přístup pouze k části paměti přidělené operačním systémem, nikoli však k jiným procesům. A někdy potřebujete přístup ke stejné paměti mezi různými procesy, co byste měli dělat? Operační systém poskytuje API pro vytvoření přístupu ke sdílené paměti a procesy, které potřebují sdílet paměť, mohou přistupovat k paměti sdílené více procesy prostřednictvím této sady definovaných API a každý proces přistupuje k této paměti, jako by přistupoval k souboru na pevném disku. .Net 4.0 představuje System.IO. Jmenný prostor MemoryMappedFiles, třída, která zapouzdřuje API související s Windows Shared Memory, což usnadňuje programátorům .Net používání souborů pro mapování paměti.
Používejte sdílenou paměť v C#. Následující kód pro App1 umožňuje uživateli zadat řádek textu do sdílené paměti; App2 neustále obnovuje konzoli a generuje nejnovější obsah sdílené paměti; App3 implementuje stejné funkce jako App2, ale metoda čtení je odlišná.

Byly použity dvě metody čtení dat.
Protože komunikace mezi procesy byla dříve používána jen zřídka, tato metoda je pouze předběžným porozuměním. Program je příliš jednoduchý a mnoho věcí není posuzováno. Například jak vytvořit sdílenou paměť, jak ji obnovit a smazat atd.




Předchozí:.net/c# CryptoJS aes šifrovaný zdrojový kód
Další:activemq persistentní úložiště je plné
 Pronajímatel| Zveřejněno 03.10.2025 16:10:57 |
.NET/C# implementuje programový singleton založený na Mutex a MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

Rodičovsko-potomkovské procesy .NET/C# komunikují pomocí MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com