Exemplo n.º 1
0
 public void DoRun(ExecProcess exec)
 {
     //LogMgr.D(string.Format("GETHeadbeat time:{0},next:{1}", Time.time, nextTime));
     if (Time.time < nextTime)
     {
         return;
     }
     nextTime = Time.time + eachTime;
     exec();
 }
Exemplo n.º 2
0
 public virtual void Exit()
 {
     try
     {
         ExecProcess?.Close();
         ExecProcess?.Dispose();
     }
     catch
     {
     }
     finally
     {
         ExecProcess = null;
         Detach();
     }
 }
Exemplo n.º 3
0
        [TestCase(256, 1)]     //1で1Mbyte
        //[TestCase(1000000, 2000)] //1で1Mbyte 自作cat.exeでは200MByteまでしか対応できない
        public void StartTest(int block, int count)
        {
            var srcDir = string.Format("{0}\\WebServerTest", TestUtil.ProjectDirectory());

            //こちらの自作cat.exeでは、200Mbyteまでしか対応できていない
            var execProcess = new ExecProcess(string.Format("{0}\\cat.exe", srcDir), "", srcDir, null);

            var buf = new byte[block];

            for (var b = 0; b < block; b++)
            {
                buf[b] = (byte)b;
            }
            var inputStream = new WebStream(block * count);

            for (var i = 0; i < count; i++)
            {
                inputStream.Add(buf);
            }
            WebStream outputStream;

            execProcess.Start(inputStream, out outputStream);

            for (var i = 0; i < count; i++)
            {
                var len = outputStream.Read(buf, 0, buf.Length);
                Assert.AreEqual(len, block);
                if (i == 0)
                {
                    Assert.AreEqual(buf[0], 0);
                    Assert.AreEqual(buf[1], 1);
                    Assert.AreEqual(buf[2], 2);
                }
            }

            outputStream.Dispose();
            inputStream.Dispose();
        }