public DiskIoWriteState Init(Stream stream, byte[] data, long fileOffset, int dataOffset, long length, DiskIoWriteCallback callback, object state) { Stream = stream; FileOffset = fileOffset; DataOffset = dataOffset; Length = length; Data = data; Callback = callback; State = state; return(this); }
public static void QueueWrite(Stream stream, byte[] data, long fileOffset, int dataOffset, long length, DiskIoWriteCallback callback, object state) { while (WriteQueue.Count > MaxPendingOps) { Thread.Sleep(10); } var writeData = WriteCache.Get().Init(stream, data, fileOffset, dataOffset, length, callback, state); WriteQueue.Enqueue(writeData); if (WriteQueue.Count > MinPendingOps) { IoHandle.Set(); } }