コード例 #1
0
 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);
 }
コード例 #2
0
        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();
            }
        }