MemoryMappedFile.CreateViewAccessor 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
建立對應於記憶體對應檔檢視的 MemoryMappedViewAccessor。
多載
CreateViewAccessor() |
建立對應於記憶體對應檔檢視的 MemoryMappedViewAccessor。 |
CreateViewAccessor(Int64, Int64) |
建立 MemoryMappedViewAccessor,此存取子可對應到記憶體對應檔案的檢視,並且有指定的位移和大小。 |
CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess) |
建立 MemoryMappedViewAccessor,此存取子可對應到記憶體對應檔案的檢視,並且有指定位移、大小和存取限制。 |
CreateViewAccessor()
建立對應於記憶體對應檔檢視的 MemoryMappedViewAccessor。
public:
System::IO::MemoryMappedFiles::MemoryMappedViewAccessor ^ CreateViewAccessor();
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor ();
member this.CreateViewAccessor : unit -> System.IO.MemoryMappedFiles.MemoryMappedViewAccessor
Public Function CreateViewAccessor () As MemoryMappedViewAccessor
傳回
記憶體隨機存取區塊。
例外狀況
未授權存取記憶體對應檔案。
備註
您可以使用這個方法傳回的檢視來隨機存取記憶體對應檔案。
另請參閱
適用於
CreateViewAccessor(Int64, Int64)
建立 MemoryMappedViewAccessor,此存取子可對應到記憶體對應檔案的檢視,並且有指定的位移和大小。
public:
System::IO::MemoryMappedFiles::MemoryMappedViewAccessor ^ CreateViewAccessor(long offset, long size);
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size);
member this.CreateViewAccessor : int64 * int64 -> System.IO.MemoryMappedFiles.MemoryMappedViewAccessor
Public Function CreateViewAccessor (offset As Long, size As Long) As MemoryMappedViewAccessor
參數
- offset
- Int64
檢視會在此處開始的位元組。
- size
- Int64
檢視的大小。 指定 0 (零),建立在 offset
開始,而大約在記憶體對應檔結尾結束的檢視。
傳回
記憶體隨機存取區塊。
例外狀況
未授權存取記憶體對應檔案。
發生 I/O 錯誤。
範例
下列範例會建立記憶體對應檔案的檢視,並加以編輯。 此程式代碼範例是針對 類別提供的較大範例的 MemoryMappedFile 一部分。
// 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);
}
}
' 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
備註
您可以使用這個方法傳回的檢視來隨機存取記憶體對應檔案。
若要建立記憶體對應檔案的完整檢視,請為 size
參數指定 0 (零) 。 如果您這樣做,檢視的大小可能大於磁碟上來源檔案的大小。 這是因為檢視是以系統頁面單位提供,而檢視的大小會四捨五入到下一個系統頁面大小。
另請參閱
適用於
CreateViewAccessor(Int64, Int64, MemoryMappedFileAccess)
建立 MemoryMappedViewAccessor,此存取子可對應到記憶體對應檔案的檢視,並且有指定位移、大小和存取限制。
public:
System::IO::MemoryMappedFiles::MemoryMappedViewAccessor ^ CreateViewAccessor(long offset, long size, System::IO::MemoryMappedFiles::MemoryMappedFileAccess access);
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
[System.Security.SecurityCritical]
public System.IO.MemoryMappedFiles.MemoryMappedViewAccessor CreateViewAccessor (long offset, long size, System.IO.MemoryMappedFiles.MemoryMappedFileAccess access);
member this.CreateViewAccessor : int64 * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess -> System.IO.MemoryMappedFiles.MemoryMappedViewAccessor
[<System.Security.SecurityCritical>]
member this.CreateViewAccessor : int64 * int64 * System.IO.MemoryMappedFiles.MemoryMappedFileAccess -> System.IO.MemoryMappedFiles.MemoryMappedViewAccessor
Public Function CreateViewAccessor (offset As Long, size As Long, access As MemoryMappedFileAccess) As MemoryMappedViewAccessor
參數
- offset
- Int64
檢視會在此處開始的位元組。
- size
- Int64
檢視的大小。 指定 0 (零),建立在 offset
開始,而大約在記憶體對應檔結尾結束的檢視。
- access
- MemoryMappedFileAccess
其中一個列舉值,指定記憶體對應檔允許的存取類型。 預設為 ReadWrite。
傳回
記憶體隨機存取區塊。
- 屬性
例外狀況
access
是無效的記憶體對應檔案。
發生 I/O 錯誤。
備註
您可以使用這個方法傳回的檢視來隨機存取記憶體對應檔案。
若要建立記憶體對應檔案的完整檢視,請為 size
參數指定 0 (零) 。 如果您這樣做,檢視的大小可能大於磁碟上來源檔案的大小。 這是因為檢視是以系統頁面單位提供,而檢視的大小會四捨五入到下一個系統頁面大小。