C2dmSharp.Server.C2dmService.SetNumberOfWorkers C# (CSharp) Method

SetNumberOfWorkers() public method

Increase or decrease the number of workers to process queued messages.
public SetNumberOfWorkers ( int value ) : void
value int New Value for the number of workers to use
return void
        public void SetNumberOfWorkers(int value)
        {
            lock (workers)
            {
                //Remove some if we need to
                while (workers.Count > value)
                {
                    workers[0].Stop();
                    workers.RemoveAt(0);
                }

                //Add workers if we need to
                while (workers.Count < value)
                {
                    var worker = new C2dmMessageTransportWorker();

                    worker.Task = Task.Factory.StartNew(messageTransportWork,
                    worker.CancelToken,
                    TaskCreationOptions.LongRunning).ContinueWith((Task t) =>
                    {
                        //TODO: Log error

                    }, TaskContinuationOptions.OnlyOnFaulted);

                    workers.Add(worker);
                }
            }
        }