- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Reflection;
- using System.IO;
-
- namespace MaitreDede.Test
- {
- class Program
- {
- static void Main(string[] args)
- {
- //Paramétrage
- //Chemin vers un gros fichier
- string file = "grosfichier.zip";
- //Bande passante en ko/s
- int bandwidth = 20480;
-
- //On récupére des info et on charge le ficher en mémoire
- //On peut aussi lire directement le fichier à partir du disque
- FileInfo info = new FileInfo(file);
- long size = info.Length;
- FileStream instr = File.OpenRead(file);
-
- byte[] buffer = new byte[size];
- MemoryStream ms = new MemoryStream();
- int read;
- while ((read = instr.Read(buffer, 0, buffer.Length)) > 0)
- {
- ms.Write(buffer, 0, read);
- }
- instr.Close();
- ms.Position = 0;
-
- //On crée le flux
- ThrottleStream str = new ThrottleStream(ms, bandwidth);
-
- //Top Chrono !!!
- TimeSpan start = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
- while (str.Read(buffer, 0, buffer.Length) > 0)
- {
- Console.WriteLine("loop...");
- }
- //Terminé
- TimeSpan stop = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
-
- //Statistiques
- Console.WriteLine("Bande passante : " + bandwidth);
- Console.WriteLine("Taille du fichier : " + size);
- Console.WriteLine("Temps théorique : " + new TimeSpan(0, 0, (int)(size / bandwidth)));
- Console.WriteLine("Durée totale : " + (stop - start));
- }
- }
- }
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.IO;
namespace MaitreDede.Test
{
class Program
{
static void Main(string[] args)
{
//Paramétrage
//Chemin vers un gros fichier
string file = "grosfichier.zip";
//Bande passante en ko/s
int bandwidth = 20480;
//On récupére des info et on charge le ficher en mémoire
//On peut aussi lire directement le fichier à partir du disque
FileInfo info = new FileInfo(file);
long size = info.Length;
FileStream instr = File.OpenRead(file);
byte[] buffer = new byte[size];
MemoryStream ms = new MemoryStream();
int read;
while ((read = instr.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
instr.Close();
ms.Position = 0;
//On crée le flux
ThrottleStream str = new ThrottleStream(ms, bandwidth);
//Top Chrono !!!
TimeSpan start = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
while (str.Read(buffer, 0, buffer.Length) > 0)
{
Console.WriteLine("loop...");
}
//Terminé
TimeSpan stop = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
//Statistiques
Console.WriteLine("Bande passante : " + bandwidth);
Console.WriteLine("Taille du fichier : " + size);
Console.WriteLine("Temps théorique : " + new TimeSpan(0, 0, (int)(size / bandwidth)));
Console.WriteLine("Durée totale : " + (stop - start));
}
}
}