public override void Write(TorrentFile file, long offset, byte[] buffer, int bufferOffset, int count) { Check.File(file); Check.Buffer(buffer); if (offset < 0 || offset + count > file.Length) { throw new ArgumentOutOfRangeException("offset"); } TorrentFileStream stream = GetStream(file, FileAccess.ReadWrite); stream.Seek(offset, SeekOrigin.Begin); stream.Write(buffer, bufferOffset, count); }
public override void Write(TorrentFile file, long offset, byte[] buffer, int bufferOffset, int count) { Check.File(file); Check.Buffer(buffer); if (offset < 0 || offset + count > file.Length) { throw new ArgumentOutOfRangeException("offset"); } TorrentFileStream stream = GetStream(file, FileAccess.ReadWrite); _stopwatch.Reset(); _stopwatch.Start(); stream.Seek(offset, SeekOrigin.Begin); stream.Write(buffer, bufferOffset, count); if (_stopwatch.ElapsedMilliseconds > 1000) { Logger.Log(null, "Slow write time: {0}ms pos: {1} len: {2}", _stopwatch.ElapsedMilliseconds, offset, count); } }