Example #1
0
        public void TestProcessPipeStream()
        {
            const int ALL         = 10000000;
            var       strm        = new ShellStreamProvider.ProcessPipeStream();
            var       rdr         = new Reader(strm);
            Action    x           = rdr.ReadAll;
            var       asyncResult = x.BeginInvoke(null, null);

            Random rand = new Random(319);

            for (int i = 0; i < ALL;)
            {
                var N   = 1 + rand.Next(400);
                var buf = new byte[N];
                int j;
                for (j = 0; j < N && i < ALL; j++, i++)
                {
                    buf[j] = (byte)i;
                }
                strm.Write(buf, 0, j);
                //Console.WriteLine("Write {0} bytes", j);
            }
            strm.Write(null, 0, 0);

            Console.WriteLine("Waiting");
            x.EndInvoke(asyncResult);
            Console.WriteLine("Terminated");

            Assert.AreEqual(ALL, rdr.offset);
        }
Example #2
0
 public Reader(ShellStreamProvider.ProcessPipeStream strm1)
 {
     this.strm = strm1;
 }