メモリマップトファイル(MMF)について調べます。これは、MSDNhttp ://msdn.microsoft.com/en-us/library/dd997372.aspxの例に従ってこれまでに行ったことです。
class MMF {
private long offset = 0x10000000; // 256 megabytes
private long length = 0x20000000; // 512 megabytes
public MMF() {
using (var mmf = MemoryMappedFile.CreateFromFile(@"c:\NFS", FileMode.Open, "NMAP")) {
using (var accessor = mmf.CreateViewAccessor(offset, length)) {
int fsSize = Marshal.SizeOf(typeof(FS));
FS nfs;
// Make changes to the view.
for (long i = 0; i < length; i += fsSize) {
accessor.Read(i, out nfs);
accessor.Write(i, ref nfs);
ここで、FSは別のクラスオブジェクトの単なる配列です
public class FS {
public NFS[] files;
}
しかし、エラーが発生します:
タイプ「NEN_Server.FS.FS」は、ジェネリック型またはメソッド「System.IO.UnmanagedMemoryAccessor.Read(long、out T)」でパラメーター「T」として使用するために、null許容値ではないタイプである必要があります。
私は何が間違っているのですか?クラスをnull許容にする必要がありますか、それとも別の方法でアクセサーを使用する必要がありますか?
ありがとうございました