Denna artikel är en spegelartikel om maskinöversättning, klicka här för att hoppa till originalartikeln.

Utsikt: 23927|Svar: 2

[Källa] C# implementerar processminnesmappning på fildelningsminne

[Kopiera länk]
Publicerad på 2017-10-07 18:51:10 | | |
Minnesmappningsfiler använder virtuellt minne för att mappa filer till processens adressutrymme, varefter processen manipulerar filen precis som adressen i processutrymmet, till exempel med memcpy och andra minnesoperationer i C-språket. Denna metod kan användas väl i situationer där en fil eller en stor fil behöver bearbetas ofta, och IO-bearbetningseffektiviteten är högre än för vanlig IO
Delat minne är ett specialfall av minnesmappade filer, som mappar en minnesbit istället för en fil på disk. Ämnet delat minne är Process, och operativsystemet tilldelar som standard ett minnesutrymme till varje process, och varje process får endast åtkomst till en minnesbit som operativsystemet har tilldelat sig, men inte till andra processer. Och ibland behöver du komma åt samma minnesbit mellan olika processer, vad ska du göra? Operativsystemet tillhandahåller ett API för att skapa åtkomst till delat minne, och processer som behöver dela minne kan komma åt minnet som delas av flera processer via denna uppsättning definierade API:er, och varje process får tillgång till detta minne som om den vore att komma åt en fil på en hårddisk. .Net 4.0 introducerar System.IO. MemoryMappedFiles-namnrymden, en klass som kapslar in Windows Shared Memory-relaterade API:er, vilket gör det enklare för .Net-programmerare att använda minnesmappningsfiler.
Använd delat minne i C#. Följande kod för App1 låter användaren mata in en textrad i delat minne; App2 uppdaterar ständigt konsolen och skickar ut det senaste delade minnesinnehållet; App3 implementerar samma funktioner som App2, men läsmetoden är annorlunda.

Två metoder användes för att läsa datan.
Eftersom kommunikation mellan processer sällan användes tidigare är denna metod endast en preliminär förståelse. Programmet är för grundläggande, och det finns många saker som inte bedöms. Till exempel hur man skapar ett delat minne, hur man hämtar och tar bort det, osv.




Föregående:.net/c# CryptoJS aes-krypterad källkod
Nästa:activemq Persistent store är Full
 Hyresvärd| Publicerad på 2025-10-03 16:10:57 |
.NET/C# implementerar programmet singleton baserat på Mutex och MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

.NET/C#-föräldra-barn-processer kommunicerar med hjälp av MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Friskrivning:
All programvara, programmeringsmaterial eller artiklar som publiceras av Code Farmer Network är endast för lärande- och forskningsändamål; Ovanstående innehåll får inte användas för kommersiella eller olagliga ändamål, annars kommer användarna att bära alla konsekvenser. Informationen på denna sida kommer från internet, och upphovsrättstvister har inget med denna sida att göra. Du måste helt radera ovanstående innehåll från din dator inom 24 timmar efter nedladdning. Om du gillar programmet, vänligen stöd äkta programvara, köp registrering och få bättre äkta tjänster. Om det finns något intrång, vänligen kontakta oss via e-post.

Mail To:help@itsvse.com