/// <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();
            }
        }
Ejemplo n.º 2
0
        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);
        }