/// <summary> /// Starts the dequeuing of message using the specified <paramref name="maximumConcurrencyLevel"/>. /// </summary> /// <param name="maximumConcurrencyLevel">Indicates the maximum concurrency level this <see cref="IDequeueMessages"/> is able to support.</param> public virtual void Start(int maximumConcurrencyLevel) { WindowsServiceBusDequeueStrategy.maximumConcurrencyLevel = maximumConcurrencyLevel; CreateAndStartNotifier(); tokenSource = new CancellationTokenSource(); scheduler = new MTATaskScheduler(maximumConcurrencyLevel, String.Format("NServiceBus Dequeuer Worker Thread for [{0}]", address)); for (int i = 0; i < maximumConcurrencyLevel; i++) { StartThread(); } }
public void Start(string address, int numberOfWorkerThreads) { tokenSource = new CancellationTokenSource(); listener = new HttpListener(); listener.Prefixes.Add(address); scheduler = new MTATaskScheduler(numberOfWorkerThreads, String.Format("NServiceBus Gateway Channel Receiver Thread for [{0}]", address)); try { listener.Start(); } catch (Exception ex) { var message = string.Format("Failed to start listener for {0} make sure that you have admin privileges", address); throw new Exception(message,ex); } var token = tokenSource.Token; Task.Factory.StartNew(HttpServer, token, token, TaskCreationOptions.LongRunning, TaskScheduler.Default); }