コード例 #1
0
        private void AddProcessor(string processingGroup, bool multiprocessing)
        {
            BlockingCollection <RoutedContext> inputPipe = new BlockingCollection <RoutedContext>();

            if (!multiprocessing)
            {
                HttpSimpleProcessor processor = new HttpSimpleProcessor(this);
                processor.ProcessingGroupName = processingGroup;
                processor.Name = "Tx_" + processingGroup;

                //HttpRouter ---<RoutedContext>---> HttpProcessor
                processor.InputPipe = inputPipe;

                //HttpProcessor ---<HttpContext>---> HttpOutboundAdapter
                processor.OutputPipe = _httpOutboundAdapter.InputPipe;

                _httpProcessors.Add(processingGroup, processor);
            }
            else
            {
                HttpLimitedMultiProcessor processor = new HttpLimitedMultiProcessor(this);
                processor.ProcessingGroupName = processingGroup;

                //HttpRouter ---<RoutedContext>---> HttpProcessor
                processor.InputPipe = inputPipe;

                //HttpProcessor ---<HttpContext>---> HttpOutboundAdapter
                processor.OutputPipe = _httpOutboundAdapter.InputPipe;

                _httpProcessors.Add(processingGroup, processor);
            }

            _httpRouter.AddOutputPipe(processingGroup, inputPipe);
        }