Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 23927|Jawab: 2

[Sumber] C# mengimplementasikan memori pembagian file pemetaan memori proses

[Salin tautan]
Diposting pada 07/10/2017 18.51.10 | | |
File pemetaan memori menggunakan memori virtual untuk memetakan file ke ruang alamat proses, setelah itu proses memanipulasi file seperti alamat di ruang proses, seperti menggunakan memcpy dan fungsi operasi memori lainnya dalam bahasa C. Metode ini dapat digunakan dengan baik dalam situasi di mana file atau file besar perlu sering diproses, dan efisiensi pemrosesan IO lebih tinggi daripada IO biasa
Memori bersama adalah kasus khusus dari file yang dipetakan memori, yang memetakan sepotong memori, bukan file pada disk. Subjek memori bersama adalah Proses, dan sistem operasi mengalokasikan ruang memori untuk setiap proses secara default, dan setiap proses hanya diizinkan untuk mengakses sepotong memori yang dialokasikan untuknya oleh sistem operasi, tetapi tidak untuk proses lain. Dan terkadang Anda perlu mengakses memori yang sama di antara proses yang berbeda, apa yang harus Anda lakukan? Sistem operasi menyediakan API untuk membuat akses ke memori bersama, dan proses yang perlu berbagi memori dapat mengakses memori yang dibagikan oleh beberapa proses melalui kumpulan API yang ditentukan ini, dan setiap proses mengakses memori ini seolah-olah mengakses file di hard disk. .Net 4.0 memperkenalkan System.IO. Namespace MemoryMappedFiles, kelas yang merangkum API terkait Memori Bersama Windows, sehingga memudahkan pemrogram .Net untuk menggunakan file pemetaan memori.
Gunakan memori bersama di C#. Kode berikut untuk App1 memungkinkan pengguna memasukkan baris teks ke dalam memori bersama; App2 terus-menerus menyegarkan konsol dan mengeluarkan konten memori bersama terbaru; App3 mengimplementasikan fungsi yang sama dengan App2, tetapi metode membacanya berbeda.

Dua metode digunakan untuk membaca data.
Karena komunikasi antar proses jarang digunakan sebelumnya, metode ini hanyalah pemahaman awal. Program ini terlalu sederhana, dan ada banyak hal yang tidak dinilai. Misalnya, cara membuat memori bersama, cara mengambil dan menghapusnya, dll.




Mantan:.net/c# Kode sumber terenkripsi CryptoJS aes
Depan:activemq Penyimpanan persisten penuh
 Tuan tanah| Diposting pada 03/10/2025 16.10.57 |
.NET/C# mengimplementasikan program singleton berdasarkan Mutex dan MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

Proses induk-anak .NET/C# berkomunikasi menggunakan MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com