Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 23927|Atsakyti: 2

[Šaltinis] C# įgyvendina proceso atminties atvaizdavimą failų bendrinimo atmintyje

[Kopijuoti nuorodą]
Paskelbta 2017-10-07 18:51:10 | | |
Atminties susiejimo failai naudoja virtualią atmintį, kad susietų failus su proceso adresų sritimi, o po to procesas manipuliuoja failu kaip ir adresu proceso erdvėje, pvz., naudojant memcpy ir kitas atminties operacijų funkcijas C kalba. Šis metodas gali būti gerai naudojamas tais atvejais, kai failą ar didelį failą reikia dažnai apdoroti, o IO apdorojimo efektyvumas yra didesnis nei įprasto IO
Bendra atmintis yra ypatingas atminties susietų failų atvejis, kuris susieja atminties dalį, o ne failą diske. Bendros atminties objektas yra procesas, o operacinė sistema pagal numatytuosius nustatymus kiekvienam procesui skiria atminties vietą, o kiekvienam procesui leidžiama pasiekti tik operacinės sistemos jam skirtą atminties dalį, bet ne kitiems procesams. Ir kartais reikia pasiekti tą pačią atminties dalį tarp skirtingų procesų, ką turėtumėte daryti? Operacinė sistema suteikia API, kad sukurtų prieigą prie bendros atminties, o procesai, kuriems reikia bendrinti atmintį, gali pasiekti atmintį, kurią bendrina keli procesai per šį apibrėžtų API rinkinį, ir kiekvienas procesas pasiekia šią atmintį taip, lyg jis pasiektų failą standžiajame diske. .Net 4.0 pristato System.IO. "MemoryMappedFiles" vardų sritis – klasė, apimanti su "Windows" bendrinama atmintimi susijusias API, todėl .Net programuotojams lengviau naudoti atminties susiejimo failus.
Naudokite bendrą atmintį C#. Šis "App1" kodas leidžia vartotojui įvesti teksto eilutę į bendrą atmintį; "App2" nuolat atnaujina konsolę ir išveda naujausią bendros atminties turinį; "App3" įgyvendina tas pačias funkcijas kaip ir "App2", tačiau skaitymo būdas skiriasi.

Duomenims nuskaityti buvo naudojami du metodai.
Kadangi anksčiau ryšys tarp procesų buvo naudojamas retai, šis metodas yra tik preliminarus supratimas. Programa yra pernelyg elementari, ir yra daug dalykų, kurie nėra vertinami. Pavyzdžiui, kaip sukurti bendrą atmintį, kaip ją atkurti ir ištrinti ir pan.




Ankstesnis:.net/c# CryptoJS aes užšifruotas šaltinio kodas
Kitą:activemq Nuolatinė saugykla yra pilna
 Savininkas| Paskelbta 2025-10-03 16:10:57 |
.NET/C# įgyvendina programą singleton, pagrįstą Mutex ir MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

.NET/C# pirminiai ir antriniai procesai bendrauja naudodami MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com