Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 23927|Répondre: 2

[Source] C# implémente la correspondance de mémoire de processus en mémoire de partage de fichiers

[Copié le lien]
Publié sur 07/10/2017 18:51:10 | | |
Les fichiers de mappage mémoire utilisent la mémoire virtuelle pour associer les fichiers à l’espace d’adressage du processus, après quoi le processus manipule le fichier tout comme l’adresse dans l’espace de processus, comme en utilisant memcpy et d’autres fonctions de fonctionnement mémoire en langage C. Cette méthode peut être bien utilisée dans des situations où un fichier ou un fichier volumineux doit être traité fréquemment, et où l’efficacité du traitement des IES est supérieure à celle des IO ordinaires
La mémoire partagée est un cas particulier de fichiers mappés en mémoire, qui mappent un morceau de mémoire au lieu d’un fichier sur disque. Le sujet de la mémoire partagée est Processus, et le système d’exploitation attribue par défaut un espace mémoire à chaque processus, chaque processus n’étant autorisé à accéder qu’à une partie de mémoire qui lui est allouée par le système d’exploitation, mais pas aux autres processus. Et parfois, il faut accéder au même morceau de mémoire entre différents processus, que faut-il faire ? Le système d’exploitation fournit une API pour créer un accès à la mémoire partagée, et les processus qui doivent partager la mémoire peuvent accéder à la mémoire partagée par plusieurs processus via cet ensemble d’API définies, chaque processus accédant à cette mémoire comme s’il accédait à un fichier sur un disque dur. Le .Net 4.0 introduit le System.IO. L’espace de noms MemoryMappedFiles, une classe qui encapsule les API liées à la mémoire partagée de Windows, facilitant ainsi l’utilisation des fichiers de mappe mémoire par les programmeurs .Net.
Utilisez la mémoire partagée en C#. Le code suivant pour App1 permet à l’utilisateur d’entrer une ligne de texte dans la mémoire partagée ; App2 rafraîchit constamment la console et affiche le dernier contenu mémoire partagé ; App3 implémente les mêmes fonctions qu’App2, mais la méthode de lecture est différente.

Deux méthodes ont été utilisées pour lire les données.
Comme la communication entre processus était rarement utilisée auparavant, cette méthode n’est qu’une compréhension préliminaire. Le programme est trop rudimentaire, et il y a beaucoup de choses qui ne sont pas jugées. Par exemple, comment créer un souvenir partagé, comment le récupérer et le supprimer, etc.




Précédent:Code source .net/c# CryptoJS aes chiffré
Prochain:activemq Le stockage persistant est complet
 Propriétaire| Publié sur 03/10/2025 16:10:57 |
.NET/C# implémente un single de programme basé sur Mutex et MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

Les processus parent-enfant .NET/C# communiquent via MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com