public long TransferTo(RarReader reader, Stream source, Stream destination) { var array = new byte[81920]; long total = 0; int count; while ((count = source.Read(array, 0, array.Length)) != 0) { total += count; destination.Write(array, 0, count); if (total > 5000000) { // Just as a test reader.Cancel(); return -1; } } return total; }