Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 23927|Risposta: 2

[Fonte] C# implementa la mappatura della memoria di processo per la condivisione file

[Copiato link]
Pubblicato su 07/10/2017 18:51:10 | | |
I file di mappatura di memoria utilizzano la memoria virtuale per mappare i file allo spazio di indirizzamento del processo, dopodiché il processo manipola il file proprio come l'indirizzo nello spazio di processo, ad esempio usando memcpy e altre funzioni operative di memoria nel linguaggio C. Questo metodo può essere utilizzato bene in situazioni in cui un file o un file grande deve essere elaborato frequentemente, e l'efficienza di elaborazione IO è superiore a quella di un IO ordinario
La memoria condivisa è un caso particolare di file mappati in memoria, che mappano un pezzo di memoria invece di un file su disco. L'oggetto della memoria condivisa è Processo, e il sistema operativo assegna di default uno spazio di memoria a ciascun processo, e ogni processo può accedere solo a un pezzo di memoria assegnato dal sistema operativo, ma non ad altri processi. E a volte devi accedere allo stesso pezzo di memoria tra processi diversi, cosa dovresti fare? Il sistema operativo fornisce un'API per creare accesso alla memoria condivisa, e i processi che necessitano di condividere la memoria possono accedere alla memoria condivisa da più processi tramite questo insieme di API definite, e ogni processo accede a questa memoria come se stesse accedendo a un file su un hard disk. Il .Net 4.0 introduce il System.IO. MemoryMappedFiles, una classe che racchiude le API relative alla memoria condivisa di Windows, facilitando l'uso dei file di mappatura di memoria per i programmatori .Net.
Usa la memoria condivisa in C#. Il seguente codice per App1 permette all'utente di inserire una riga di testo nella memoria condivisa; App2 aggiorna costantemente la console e mostra gli ultimi contenuti di memoria condivisa; App3 implementa le stesse funzioni di App2, ma il metodo di lettura è diverso.

Sono stati utilizzati due metodi per leggere i dati.
Poiché la comunicazione tra processi era raramente utilizzata prima, questo metodo è solo una comprensione preliminare. Il programma è troppo rudimentale e ci sono molte cose che non vengono giudicate. Ad esempio, come creare una memoria condivisa, come recuperarla ed eliminarla, ecc.




Precedente:.net/c# Codice sorgente criptato CryptoJS aes
Prossimo:activemq Persistent store è pieno
 Padrone di casa| Pubblicato su 03/10/2025 16:10:57 |
.NET/C# implementa un singolo di programma basato su Mutex e MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

.NET/C# i processi padre-figlio comunicano usando MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com