Эта статья является зеркальной статьёй машинного перевода, пожалуйста, нажмите здесь, чтобы перейти к оригиналу.

Вид: 23927|Ответ: 2

[Источник] C# реализует отображение процессной памяти с файловой памятью

[Скопировать ссылку]
Опубликовано 07.10.2017 18:51:10 | | |
Файлы отображения памяти используют виртуальную память для сопоставления файлов с адресным пространством процесса, после чего процесс управляет файлом так же, как адрес в пространстве процесса, например, используя memcpy и другие функции операций памяти в языке C. Этот метод хорошо применяется в ситуациях, когда файл или большой файл требуется частая обработка, а эффективность обработки ввода-выводов выше, чем у обычного ввода
Общая память — это особый случай файлов, отображаемых на памяти, которые отображают фрагмент памяти вместо файла на диске. Объектом общей памяти является Process, и операционная система по умолчанию выделяет пространство памяти каждому процессу, при этом каждый процесс имеет доступ только к части памяти, выделенной операционной системой, но не к другим процессам. И иногда нужно получить доступ к одной и той же памяти между разными процессами, что делать? Операционная система предоставляет API для создания доступа к общей памяти, и процессы, требующие совместной памяти, могут получать доступ к памяти, используемой несколькими процессами, через этот набор определённых API, и каждый процесс обращается к этой памяти так, как если бы он обращался к файлу на жёстком диске. .Net 4.0 вводит System.IO. Spacespace имён MemoryMappedFiles — класс, инкапсулирующий API, связанные с Windows Shared Memory, что облегчает программистам .Net использование файлов отображения памяти.
Используйте общую память в C#. Следующий код для App1 позволяет пользователю ввести строку текста в общую память; Приложение 2 постоянно обновляет консоль и выводит свежее содержимое общей памяти; App3 реализует те же функции, что и App2, но метод чтения отличается.

Для чтения данных использовались два метода.
Поскольку коммуникация между процессами ранее редко использовалась, этот метод является лишь предварительным пониманием. Программа слишком примитивна, и есть много вещей, которые не осуждаются. Например, как создать общую память, как её восстановить и удалить и так далее.




Предыдущий:.net/c# CryptoJS aes зашифрованный исходный код
Следующий:activemq Persistent Store заполнен
 Хозяин| Опубликовано 03.10.2025 16:10:57 |
.NET/C# реализует программу singleton на базе Mutex и MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

Родительско-дочерние процессы .NET/C# взаимодействуют с помощью MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Отказ:
Всё программное обеспечение, программные материалы или статьи, публикуемые Code Farmer Network, предназначены исключительно для учебных и исследовательских целей; Вышеуказанный контент не должен использоваться в коммерческих или незаконных целях, иначе пользователи несут все последствия. Информация на этом сайте взята из Интернета, и споры по авторским правам не имеют отношения к этому сайту. Вы должны полностью удалить вышеуказанный контент с компьютера в течение 24 часов после загрузки. Если вам нравится программа, пожалуйста, поддержите подлинное программное обеспечение, купите регистрацию и получите лучшие подлинные услуги. Если есть нарушение, пожалуйста, свяжитесь с нами по электронной почте.

Mail To:help@itsvse.com