示例#1
0
 internal void ReplacePoolWorker(PoolWorker poolWorker, bool errorRecovery)
 {
     if (_poolWorker != null && !errorRecovery)
     {
         _poolWorker.ForceTermination();
     }
     _poolWorker = poolWorker;
 }
示例#2
0
        public SpreadsThreadPool(ThreadPoolSettings settings)
        {
            workQueue = new ThreadPoolWorkQueue(this);
            Settings  = settings;
            _workers  = new PoolWorker[settings.NumThreads];

            for (int i = 0; i < settings.NumThreads; i++)
            {
                _workers[i] = new PoolWorker(this, i);
            }
        }
 internal void ReplacePoolWorker(PoolWorker poolWorker, bool errorRecovery)
 {
     if (_poolWorker != null && !errorRecovery)
     {
         _poolWorker.ForceTermination();
     }
     _poolWorker = poolWorker;
 }
 private PoolWorker RequestThread(WorkerQueue unclaimedQueue, bool errorRecovery = false)
 {
     var worker = new PoolWorker(unclaimedQueue, this, errorRecovery);
     return worker;
 }
示例#5
0
        private PoolWorker RequestThread(WorkerQueue unclaimedQueue, bool errorRecovery = false)
        {
            var worker = new PoolWorker(unclaimedQueue, this, errorRecovery);

            return(worker);
        }