public void Test_中止_轮循模式() { var flow = new JobManager(); flow.Pool = new JobPool() { //关键属性:在组内整体轮循 IsOverall = true }; var job1 = new Job { IsLoop = true, LoopCount = 500000, Interval = 2, Timeout = 15, Run = CountFunc014_1 }; var job2 = new Job { IsLoop = true, LoopCount = 500000, Interval = 2, Timeout = 15, Run = CountFunc014_2 }; flow.Pool.AddRange(new IJobPoolItem[] { job1, job2 }); Task.Factory.StartNew(() => flow.Run()); Thread.Sleep(5); flow.Break(); _number014_1.Should().BeLessThan(job1.LoopCount).And.BeGreaterThan(0); _number014_2.Should().BeLessThan(job2.LoopCount).And.BeGreaterThan(0); }
private bool OnBreakCountFunc(IJob job) { _number++; if (_number >= 100) { _runTest005Manager.Break(); } return(true); }
public void Test_暂停与继续功能_设置1个循环20次的工作_当完成到5次时暂停_测试是否真正暂停() { _count006A = 0; var job = new Job { IsLoop = true, LoopCount = 20, Interval = 2, Timeout = 5, Run = OnPauseCountFuncA }; _runTest006AManager.Pool = new JobPool(); _runTest006AManager.Pool.Add(job); //另起一个线程执行,当执行计数到5的时候,暂停 Task.Factory.StartNew(() => _runTest006AManager.Run()); //如果暂停成功,计数器计数应该是5,而无论再等待多少时间 Thread.Sleep(100); //断言测试计数器 _count006A.Should().Be(5); _runTest006AManager.Resume(); _runTest006AManager.Break(); }
/// <summary> /// 中断正在进行的发送接线过程,无论是异步与同步。 /// </summary> public override void Break() { JobManager.Break(); }