private void FileCallback(FileQueue.Chunk chunk) { if (FileOperations.AreSynchronous) { fileStream.Write(chunk.Buffer, chunk.Offset, chunk.Size); if (metrics != null) { metrics.OnFileWritten(chunk.Size); } chunk.Commit(); } else { if (writeCallback == null) { writeCallback = this.OnWrite; } fileStream.BeginWrite(chunk.Buffer, chunk.Offset, chunk.Size, writeCallback, chunk); } }