У меня проблемы с использованием 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 меньшим значением, ошибки не будет. В моей системе 32 ГБ, поэтому не должно возникнуть проблем с распределением этой суммы данных.
Кто-нибудь сталкивался с таким поведением?
Спасибо
Martin