public TestWorkThreadPool() { InitializeComponent(); _wtpool = new WorkThreadPool(25); _wtpool.AllWorkItemCompletedEventHandler += new EventHandler(_wtpool_AllWorkItemCompletedEventHandler); _wtpool.WorkItemStateChangedEventHandler += new WorkItemStateChangedEvent(_wtpool_WorkItemStateChangedEventHandler); }
/// <summary> /// 移除工作线程 /// </summary> /// <param name="st"></param> private void RemoveWorkThread(SingleThread st) { if (null != st) { st.Wait(); lock (WorkThreadPoolLock) { WorkThreadPool?.Remove(st); } } }
/// <summary> /// 创建新的工作线程 /// </summary> /// <returns></returns> private SingleThread CreateWorkThread() { lock (WorkThreadPoolLock) { if (null == WorkThreadPool) { return(null); } var st = new SingleThread(); WorkThreadPool.Add(st); return(st); } }
/// <summary> /// 停止 /// </summary> private void DoStop() { //取消 CancelToken.Cancel(); //停止数据泵服务 //PumpControler.Stop(); //停止工作线程池 lock (WorkThreadPoolLock) { WorkThreadPool.ForEach(st => st.Stop()); WorkThreadPool = null; } //停止后台工作主线程 if (MainWorkThread.IsAlive) { MainWorkThread.Stop(); } }
public WorkThread(WorkThreadPool threadPool) { this.threadPool = threadPool; }
[Test] public void DefaultThreadPool() { WorkThreadPool threadPool = WorkThreadPool.Default; AssertNotNull(threadPool); }
[Test] public void Disposing() { WorkThreadPool threadPool = new WorkThreadPool(); threadPool.Dispose(); }
public void BadConstruct4() { WorkThreadPool threadPool = new WorkThreadPool(4, -1); }
public void BadConstruct3() { WorkThreadPool threadPool = new WorkThreadPool(-1, 3); }
public void BadConstruct2() { WorkThreadPool threadPool = new WorkThreadPool(4, 3); }
public void BadConstruct1() { WorkThreadPool threadPool = new WorkThreadPool(0, 0); }
public WorkThreadPoolEventArgs(WorkThreadPool workThreadPool, Exception exception) : base() { _workThreadPool = workThreadPool; _exception = exception; }