0

我在使用以下代码使用 MemoryMappedFile 时遇到问题。

    static int NoOfChannels = 1164;
    static int NoOfRows = 64;
    static int N = NoOfChannels * NoOfRows;
    static int NoOfProjections = 10000;
    static long val = (long)NoOfChannels * NoOfRows * NoOfProjections * 4;
    static FileStream stream = null;

    stream = new FileStream("D:\\TEST.DAT", FileMode.Open, FileAccess.ReadWrite, FileShare.ReadWrite, 10);
        stream.SetLength(val);

MemoryMappedFile m = MemoryMappedFile.CreateFromFile(stream, "XXXX", stream.Length,    MemoryMappedFileAccess.ReadWrite, null, HandleInheritability.None, true);

        for (int i = 0; i < NoOfProjections; i++)
        {
            long Pos = (long)(i * N * 4);

            MemoryMappedViewStream s = m.CreateViewStream(Pos, N * 4);
        }

使用此代码会导致错误 UnknownError_Num 8。如果我将 NoOfChannels 限制为较小的值,则不会出现错误。我的系统中有 32GB,所以分配这些数据应该没有问题。

有没有人经历过这样的行为?

谢谢马丁

4

0 回答 0