有人能幫我找出這裏有什麼錯嗎?使用未分配的本地變量'訪問器
accessor.Dispose();
導致編譯器錯誤,但只在Read方法中。寫編譯罰款不讀這樣的IM困惑......
public bool Read(ref byte[] bytes)
{
MemoryMappedViewAccessor accessor;
Lock.WaitOne();
try
{
accessor = Mmf.CreateViewAccessor(0, DataLength);
bytes = new byte[DataLength];
accessor.ReadArray<byte>(0, bytes, 0, DataLength);
}
catch
{
return false;
}
finally
{
accessor.Dispose();
Lock.ReleaseMutex();
}
return true;
}
public bool Write(byte[] bytes)
{
MemoryMappedViewAccessor accessor;
Lock.WaitOne();
try
{
DataLength = bytes.Length;
accessor = Mmf.CreateViewAccessor(0, bytes.Length);
accessor.WriteArray<byte>(0, bytes, 0, bytes.Length);
}
catch
{
return false;
}
finally
{
Dispose();
Lock.ReleaseMutex();
}
return true;
}
剛一說明:要調用,而不是'accessor.Dispose類的'的Dispose()'在'Write'方式方法,( );'。這可能會導致意想不到的行爲。 – Velox 2015-04-01 18:32:47