MemoryMappedFile Osztály
Definíció
Fontos
Egyes információk olyan, kiadás előtti termékekre vonatkoznak, amelyek a kiadásig még jelentősen módosulhatnak. A Microsoft nem vállal kifejezett vagy törvényi garanciát az itt megjelenő információért.
Memórialeképezett fájlt jelöl.
public ref class MemoryMappedFile : IDisposable
public class MemoryMappedFile : IDisposable
type MemoryMappedFile = class
interface IDisposable
Public Class MemoryMappedFile
Implements IDisposable
- Öröklődés
-
MemoryMappedFile
- Megvalósítás
Példák
Az alábbi példa egy rendkívül nagy fájl egy részének memórialeképezési nézetét hozza létre, és annak egy részét módosítja.
using System;
using System.IO;
using System.IO.MemoryMappedFiles;
using System.Runtime.InteropServices;
class Program
{
static void Main(string[] args)
{
long offset = 0x10000000; // 256 megabytes
long length = 0x20000000; // 512 megabytes
// Create the memory-mapped file.
using (var mmf = MemoryMappedFile.CreateFromFile(@"c:\ExtremelyLargeImage.data", FileMode.Open,"ImgA"))
{
// Create a random access view, from the 256th megabyte (the offset)
// to the 768th megabyte (the offset plus length).
using (var accessor = mmf.CreateViewAccessor(offset, length))
{
int colorSize = Marshal.SizeOf(typeof(MyColor));
MyColor color;
// Make changes to the view.
for (long i = 0; i < length; i += colorSize)
{
accessor.Read(i, out color);
color.Brighten(10);
accessor.Write(i, ref color);
}
}
}
}
}
public struct MyColor
{
public short Red;
public short Green;
public short Blue;
public short Alpha;
// Make the view brighter.
public void Brighten(short value)
{
Red = (short)Math.Min(short.MaxValue, (int)Red + value);
Green = (short)Math.Min(short.MaxValue, (int)Green + value);
Blue = (short)Math.Min(short.MaxValue, (int)Blue + value);
Alpha = (short)Math.Min(short.MaxValue, (int)Alpha + value);
}
}
Imports System.IO
Imports System.IO.MemoryMappedFiles
Imports System.Runtime.InteropServices
Class Program
Sub Main()
Dim offset As Long = &H10000000 ' 256 megabytes
Dim length As Long = &H20000000 ' 512 megabytes
' Create the memory-mapped file.
Using mmf = MemoryMappedFile.CreateFromFile("c:\ExtremelyLargeImage.data", FileMode.Open, "ImgA")
' Create a random access view, from the 256th megabyte (the offset)
' to the 768th megabyte (the offset plus length).
Using accessor = mmf.CreateViewAccessor(offset, length)
Dim colorSize As Integer = Marshal.SizeOf(GetType(MyColor))
Dim color As MyColor
Dim i As Long = 0
' Make changes to the view.
Do While (i < length)
accessor.Read(i, color)
color.Brighten(10)
accessor.Write(i, color)
i += colorSize
Loop
End Using
End Using
End Sub
End Class
Public Structure MyColor
Public Red As Short
Public Green As Short
Public Blue As Short
Public Alpha As Short
' Make the view brighter.
Public Sub Brighten(ByVal value As Short)
Red = CType(Math.Min(Short.MaxValue, (CType(Red, Integer) + value)), Short)
Green = CType(Math.Min(Short.MaxValue, (CType(Green, Integer) + value)), Short)
Blue = CType(Math.Min(Short.MaxValue, (CType(Blue, Integer) + value)), Short)
Alpha = CType(Math.Min(Short.MaxValue, (CType(Alpha, Integer) + value)), Short)
End Sub
End Structure
Megjegyzések
Egy memórialeképezett fájl leképezi egy fájl tartalmát egy alkalmazás logikai címterére. A memórialeképezett fájlok lehetővé teszik a programozók számára, hogy rendkívül nagy méretű fájlokkal dolgozhassanak, mivel a memória egyidejűleg kezelhető, és teljes, véletlenszerű hozzáférést tesznek lehetővé a fájlokhoz anélkül, hogy keresniük kellene. A memórialeképezett fájlok több folyamat között is megoszthatóak.
A CreateFromFile metódusok egy memórialeképezett fájlt hoznak létre egy megadott elérési útból vagy egy FileStream meglévő fájlból a lemezen. A rendszer automatikusan propagálja a módosításokat a lemezre, amikor a fájl nincs megfeleltetve.
A CreateNew metódusok létrehoznak egy memórialeképezett fájlt, amely nincs leképezve a lemezen lévő meglévő fájlra, és alkalmas megosztott memória létrehozására a folyamatközi kommunikációhoz (IPC).
A memórialeképezett fájl társítható egy választható névvel, amely lehetővé teszi a memórialeképezett fájl más folyamatokkal való megosztását.
A memórialeképezett fájl több nézetét is létrehozhatja, beleértve a fájl egyes részeinek nézeteit is. Az egyidejű memória létrehozásához a fájl ugyanazon részét több címre is megfeleltetheti. Ahhoz, hogy két nézet egyidejű maradjon, ugyanabból a memórialeképezett fájlból kell létrehozni őket. Ugyanazon fájl két fájlleképezésének két nézettel történő létrehozása nem biztosít egyidejűséget.
Tulajdonságok
| Name | Description |
|---|---|
| SafeMemoryMappedFileHandle |
Lekéri egy memórialeképezett fájl fájlleíróját. |
Metódusok
| Name | Description |
|---|---|
| CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean) |
Létrehoz egy memórialeképezett fájlt egy meglévő fájlból a megadott hozzáférési móddal, névvel, öröklődéssel és kapacitással. |
| CreateFromFile(FileStream, String, Int64, MemoryMappedFileAccess, MemoryMappedFileSecurity, HandleInheritability, Boolean) |
Létrehoz egy memórialeképezett fájlt, amely a megadott névvel, kapacitással, hozzáférési típussal, biztonsági engedélyekkel, öröklhetőséggel és elidegenítési követelményekvel rendelkezik a lemezen lévő fájlból. |
| CreateFromFile(SafeFileHandle, String, Int64, MemoryMappedFileAccess, HandleInheritability, Boolean) |
Létrehoz egy memórialeképezett fájlt egy meglévő fájlból egy SafeFileHandle és a megadott hozzáférési mód, név, öröklhetőség és kapacitás használatával. |
| CreateFromFile(String, FileMode, String, Int64, MemoryMappedFileAccess) |
Létrehoz egy memórialeképezett fájlt, amely a megadott hozzáférési móddal, névvel, kapacitással és hozzáférési típussal rendelkezik egy lemezen lévő fájlból. |
| CreateFromFile(String, FileMode, String, Int64) |
Létrehoz egy memórialeképezett fájlt, amely a megadott hozzáférési móddal, névvel és kapacitással rendelkezik egy lemezen lévő fájlból. |
| CreateFromFile(String, FileMode, String) |
Létrehoz egy memórialeképezett fájlt, amely a megadott hozzáférési móddal és névvel rendelkezik egy lemezen lévő fájlból. |
| CreateFromFile(String, FileMode) |
Létrehoz egy memórialeképezett fájlt, amely a megadott hozzáférési móddal rendelkezik egy lemezen lévő fájlból. |
| CreateFromFile(String) |
Létrehoz egy memórialeképezett fájlt egy lemezen lévő fájlból. |
| CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability) |
Létrehoz egy memórialeképezett fájlt, amely rendelkezik a megadott névvel, kapacitással, hozzáférési típussal, memórialefoglalási lehetőségekkel és öröklhetőséggel. |
| CreateNew(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability) |
Létrehoz egy memórialeképezett fájlt, amely rendelkezik a megadott kapacitással, hozzáférési típussal, memóriafoglalással, biztonsági engedélyekkel és a rendszermemória öröklöttségével. |
| CreateNew(String, Int64, MemoryMappedFileAccess) |
Létrehoz egy memórialeképezett fájlt, amely rendelkezik a megadott kapacitással és hozzáférési típussal a rendszermemóriában. |
| CreateNew(String, Int64) |
Létrehoz egy memórialeképezett fájlt, amely rendelkezik a megadott kapacitással a rendszermemóriában. |
| CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, HandleInheritability) |
Létrehoz egy új üres memórialeképezett fájlt, vagy megnyit egy meglévő memórialeképezett fájlt, ha ugyanazzal a névvel rendelkezik. Meglévő fájl megnyitásakor a rendszer figyelmen kívül hagyja a kapacitást, a beállításokat és a memóriaargumentumokat. |
| CreateOrOpen(String, Int64, MemoryMappedFileAccess, MemoryMappedFileOptions, MemoryMappedFileSecurity, HandleInheritability) |
Létrehoz vagy megnyit egy memórialeképezett fájlt, amely rendelkezik a megadott névvel, kapacitással, hozzáférési típussal, memóriafoglalással, biztonsági engedélyekkel és a rendszermemória öröklöttségével. |
| CreateOrOpen(String, Int64, MemoryMappedFileAccess) |
Létrehoz vagy megnyit egy memórialeképezett fájlt, amely a rendszermemória megadott nevével, kapacitásával és hozzáférési típusával rendelkezik. |
| CreateOrOpen(String, Int64) |
Létrehoz vagy megnyit egy memórialeképezett fájlt, amely a megadott névvel és kapacitással rendelkezik a rendszermemóriában. |
| CreateViewAccessor() |
Létrehoz egy MemoryMappedViewAccessor , a memórialeképezett fájl nézetére leképezett fájlt. |
| CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess) |
Létrehoz egy MemoryMappedViewAccessor , a memórialeképezett fájl nézetére leképezett, a megadott eltolást, méretet és hozzáférési korlátozásokat tartalmazó nézetet. |
| CreateViewAccessor(Int64, Int64) |
Létrehoz egy MemoryMappedViewAccessor , a memórialeképezett fájl nézetére leképezett, a megadott eltolást és méretet tartalmazó nézetet. |
| CreateViewStream() |
Létrehoz egy streamet, amely leképezi a memórialeképezett fájl nézetét. |
| CreateViewStream(Int64, Int64, MemoryMappedFileAccess) |
Létrehoz egy adatfolyamot, amely a memórialeképezett fájl nézetére képez le, és amely a megadott eltolást, méretet és hozzáférési típust tartalmazza. |
| CreateViewStream(Int64, Int64) |
Létrehoz egy streamet, amely leképezi a memórialeképezett fájl nézetét, amely a megadott eltolással és méretmel rendelkezik. |
| Dispose() |
Felszabadítja a .-hez használt összes erőforrást MemoryMappedFile. |
| Dispose(Boolean) |
Felszabadítja a felügyelt erőforrások által MemoryMappedFile használt nem felügyelt erőforrásokat, és opcionálisan felszabadítja a felügyelt erőforrásokat. |
| Equals(Object) |
Meghatározza, hogy a megadott objektum egyenlő-e az aktuális objektummal. (Öröklődés forrása Object) |
| GetAccessControl() |
Lekéri a hozzáférés-vezérlést a memórialeképezett fájlerőforráshoz. |
| GetHashCode() |
Ez az alapértelmezett kivonatoló függvény. (Öröklődés forrása Object) |
| GetType() |
Lekéri az Type aktuális példányt. (Öröklődés forrása Object) |
| MemberwiseClone() |
Az aktuális Objectpéldány sekély másolatát hozza létre. (Öröklődés forrása Object) |
| OpenExisting(String, MemoryMappedFileRights, HandleInheritability) |
Megnyit egy meglévő memórialeképezett fájlt, amely rendelkezik a megadott névvel, hozzáférési jogosultságokkal és öröklhetőséggel a rendszermemóriában. |
| OpenExisting(String, MemoryMappedFileRights) |
Megnyit egy meglévő memórialeképezett fájlt, amely a megadott névvel és hozzáférési jogosultságokkal rendelkezik a rendszermemóriában. |
| OpenExisting(String) |
Megnyitja a rendszermemória megadott nevét tartalmazó meglévő memórialeképezett fájlt. |
| SetAccessControl(MemoryMappedFileSecurity) |
Beállítja a hozzáférés-vezérlést a memórialeképezett fájlerőforrásra. |
| ToString() |
Az aktuális objektumot jelképező sztringet ad vissza. (Öröklődés forrása Object) |