static void Main() { var dump = File.Create("/tmp/queued-result", 8192); var qs = new QueueStream("/tmp/storage"); byte [] buffer = new byte [8192]; int count; var t = new Thread((o) => { var request = (HttpWebRequest)WebRequest.Create(url); var response = request.GetResponse(); var webStream = response.GetResponseStream(); var webBuffer = new byte [8192]; int c; while ((c = webStream.Read(webBuffer, 0, webBuffer.Length)) != 0) { Console.Write("."); var start = DateTime.UtcNow; qs.Push(webBuffer, 0, c); } Console.WriteLine("Done reading from the web"); qs.Done(); }); t.Start(); long total = 0; while ((count = qs.Read(buffer, 0, buffer.Length)) != 0) { total += count; Console.WriteLine("Slowly reading {0}, total={1}", count, total); dump.Write(buffer, 0, count); Thread.Sleep(1000); } }
static void Main () { var dump = File.Create ("/tmp/queued-result", 8192); var qs = new QueueStream ("/tmp/storage"); byte [] buffer = new byte [8192]; int count; var t = new Thread ((o) => { var request = (HttpWebRequest) WebRequest.Create (url); var response = request.GetResponse (); var webStream = response.GetResponseStream (); var webBuffer = new byte [8192]; int c; while ((c = webStream.Read (webBuffer, 0, webBuffer.Length)) != 0){ Console.Write ("."); var start = DateTime.UtcNow; qs.Push (webBuffer, 0, c); } Console.WriteLine ("Done reading from the web"); qs.Done (); }); t.Start (); long total = 0; while ((count = qs.Read (buffer, 0, buffer.Length)) != 0){ total += count; Console.WriteLine ("Slowly reading {0}, total={1}", count, total); dump.Write (buffer, 0, count); Thread.Sleep (1000); } }