Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 23927|Odpowiedź: 2

[Źródło] C# implementuje mapowanie pamięci plikowej (file share) pamięci

[Skopiuj link]
Opublikowano 07.10.2017 18:51:10 | | |
Pliki mapujące pamięć wykorzystują pamięć wirtualną do mapowania plików na przestrzeń adresową procesu, po czym proces manipuluje plikiem tak samo jak adresem w przestrzeni procesu, na przykład używając memcpy i innych funkcji operacyjnych pamięci w języku C. Metoda ta może być dobrze stosowana w sytuacjach, gdy plik lub duży plik musi być często przetwarzany, a wydajność przetwarzania IO jest wyższa niż w przypadku zwykłego IO
Pamięć współdzielona to szczególny przypadek plików mapowanych na pamięć, które mapują fragment pamięci zamiast pliku na dysku. Podmiotem pamięci współdzielonej jest proces, a system operacyjny domyślnie przydziela każdemu procesowi przestrzeń pamięci, a każdy proces może uzyskać dostęp tylko do fragmentu pamięci przydzielonego mu przez system operacyjny, ale nie do innych procesów. A czasem trzeba uzyskać dostęp do tego samego fragmentu pamięci między różnymi procesami, co powinieneś zrobić? System operacyjny udostępnia API do tworzenia dostępu do pamięci współdzielonej, a procesy potrzebujące współdzielenia pamięci mogą uzyskać dostęp do pamięci współdzielonej przez wiele procesów za pomocą tego zestawu zdefiniowanych API, a każdy proces uzyskuje dostęp do tej pamięci tak, jakby uchodził do pliku na dysku twardym. .Net 4.0 wprowadza System.IO. MemoryMappedFiles, klasa enkapsulująca API związane z Windows Shared Memory, ułatwiając programistom .Net korzystanie z plików mapowania pamięci.
Używaj współdzielonej pamięci w C#. Poniższy kod dla App1 pozwala użytkownikowi wprowadzić linijkę tekstu do pamięci współdzielonej; App2 stale odświeża konsolę i generuje najnowsze treści z pamięcią współdzieloną; App3 realizuje te same funkcje co App2, ale metoda odczytu jest inna.

Do odczytu danych użyto dwóch metod.
Ponieważ komunikacja między procesami była wcześniej rzadko stosowana, metoda ta stanowi jedynie wstępne zrozumienie. Program jest zbyt prymitywny, a wiele rzeczy nie jest oceniane. Na przykład, jak stworzyć współdzieloną pamięć, jak ją pobrać i usunąć itd.




Poprzedni:.net/c# Kod źródłowy szyfrowany w CryptoJS aes
Następny:activemq Persistent store jest pełny
 Ziemianin| Opublikowano 03.10.2025 16:10:57 |
.NET/C# implementuje program singleton na podstawie Mutex i MemoryMappedFile
https://www.itsvse.com/thread-10808-1-1.html

Procesy rodzic-dziecko .NET/C# komunikują się za pomocą MemoryMappedFile
https://www.itsvse.com/thread-10983-1-1.html
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com