--- StreamStream.cs 2007-04-03 06:12:23.687950102 +0200 +++ StreamStream.cs.new 2007-03-31 02:52:04.355589853 +0200 @@ -37,7 +37,7 @@ Stream stream; Stream wStream; static Queue Buffer = Queue.Synchronized(new Queue(2)); - static int buffSize = 1024 * 64; + static int buffSize = 1024 * 128; AutoResetEvent writeComplete = new AutoResetEvent(true); Exception exception; @@ -212,15 +212,18 @@ if (bytesRead != 0) { writeComplete.WaitOne(); + if (exception != null) throw exception; outStream.BeginWrite(buffer, 0, bytesRead, new AsyncCallback(Read_WriteComplete), buffer); bytesLeft -= bytesRead; + Thread.Sleep(1); } else break; } writeComplete.WaitOne(); writeComplete.Set(); + Thread.Sleep(1); wStream = null; return count - bytesLeft; } @@ -268,15 +271,19 @@ bf.Encipher (buffer, totalRead); writeComplete.WaitOne(); + if (exception != null) throw exception; outStream.BeginWrite(buffer, 0, totalRead, new AsyncCallback(Read_WriteComplete), buffer); bytesLeft -= bytesRead; + Thread.Sleep(1); } else break; } writeComplete.WaitOne(); + writeComplete.Set(); + Thread.Sleep(1); wStream = null; return count - bytesLeft + paddingLength; } @@ -320,15 +327,19 @@ if (bytesRead != 0) { writeComplete.WaitOne(); + if (exception != null) throw exception; stream.BeginWrite(buffer, 0, bytesRead, new AsyncCallback(Write_WriteComplete), buffer); + Thread.Sleep(1); bytesLeft -= bytesRead; } else break; } writeComplete.WaitOne(); + writeComplete.Set(); + Thread.Sleep(1); } /// @@ -372,9 +383,11 @@ bytesToWrite = bytesRead; writeComplete.WaitOne(); + if (exception != null) throw exception; stream.BeginWrite(buffer, 0, bytesToWrite, new AsyncCallback(Write_WriteComplete), buffer); + Thread.Sleep(1); bytesLeft -= bytesRead; } else break; @@ -382,6 +395,7 @@ writeComplete.WaitOne(); writeComplete.Set(); + Thread.Sleep(1); } ///