public TestWorkThreadPool()
        {
            InitializeComponent();

            _wtpool = new WorkThreadPool(25);
            _wtpool.AllWorkItemCompletedEventHandler += new EventHandler(_wtpool_AllWorkItemCompletedEventHandler);
            _wtpool.WorkItemStateChangedEventHandler += new WorkItemStateChangedEvent(_wtpool_WorkItemStateChangedEventHandler);
        }
Beispiel #2
0
        /// <summary>
        /// 移除工作线程
        /// </summary>
        /// <param name="st"></param>
        private void RemoveWorkThread(SingleThread st)
        {
            if (null != st)
            {
                st.Wait();

                lock (WorkThreadPoolLock)
                {
                    WorkThreadPool?.Remove(st);
                }
            }
        }
Beispiel #3
0
        /// <summary>
        /// 创建新的工作线程
        /// </summary>
        /// <returns></returns>
        private SingleThread CreateWorkThread()
        {
            lock (WorkThreadPoolLock)
            {
                if (null == WorkThreadPool)
                {
                    return(null);
                }

                var st = new SingleThread();
                WorkThreadPool.Add(st);

                return(st);
            }
        }
Beispiel #4
0
        /// <summary>
        /// 停止
        /// </summary>
        private void DoStop()
        {
            //取消
            CancelToken.Cancel();

            //停止数据泵服务
            //PumpControler.Stop();

            //停止工作线程池
            lock (WorkThreadPoolLock)
            {
                WorkThreadPool.ForEach(st => st.Stop());
                WorkThreadPool = null;
            }

            //停止后台工作主线程
            if (MainWorkThread.IsAlive)
            {
                MainWorkThread.Stop();
            }
        }
Beispiel #5
0
 public WorkThread(WorkThreadPool threadPool)
 {
     this.threadPool = threadPool;
 }
Beispiel #6
0
        [Test] public void DefaultThreadPool()
        {
            WorkThreadPool threadPool = WorkThreadPool.Default;

            AssertNotNull(threadPool);
        }
Beispiel #7
0
        [Test] public void Disposing()
        {
            WorkThreadPool threadPool = new WorkThreadPool();

            threadPool.Dispose();
        }
Beispiel #8
0
 public void BadConstruct4()
 {
     WorkThreadPool threadPool = new WorkThreadPool(4, -1);
 }
Beispiel #9
0
 public void BadConstruct3()
 {
     WorkThreadPool threadPool = new WorkThreadPool(-1, 3);
 }
Beispiel #10
0
 public void BadConstruct2()
 {
     WorkThreadPool threadPool = new WorkThreadPool(4, 3);
 }
Beispiel #11
0
 public void BadConstruct1()
 {
     WorkThreadPool threadPool = new WorkThreadPool(0, 0);
 }
 public WorkThreadPoolEventArgs(WorkThreadPool workThreadPool, Exception exception)
     : base()
 {
     _workThreadPool = workThreadPool;
     _exception = exception;
 }