Beispiel #1
0
        private WorkItemProcessor(int numberStatThreads, int numberNormalThreads, string name)
        {
            _name = name;
            _threadStop = new ManualResetEvent(false);

			_threadPool = new WorkItemThreadPool(numberStatThreads,numberNormalThreads)
			                  {
			                      ThreadPoolName = name + " Pool"
			                  };

			var ep = new WorkItemProcessorFactoryExtensionPoint();
            object[] factories = ep.CreateExtensions();

            if (factories == null || factories.Length == 0)
            {
                // No extension for the workqueue processor. 
                Platform.Log(LogLevel.Fatal, "No WorkItemFactory Extensions found.");
            }
            else
            {
                foreach (object obj in factories)
                {
                    var factory = obj as IWorkItemProcessorFactory;
                    if (factory != null)
                    {
                        var type = factory.GetWorkQueueType();
                        _extensions.Add(type, factory);
                    }
                    else
                        Platform.Log(LogLevel.Error, "Unexpected incorrect type loaded for extension: {0}",
                                     obj.GetType());
                }
            }
	    }
        private WorkItemProcessor(int numberStatThreads, int numberNormalThreads, string name)
        {
            _name       = name;
            _threadStop = new ManualResetEvent(false);

            _threadPool = new WorkItemThreadPool(numberStatThreads, numberNormalThreads)
            {
                ThreadPoolName = name + " Pool"
            };

            var ep = new WorkItemProcessorFactoryExtensionPoint();

            object[] factories = ep.CreateExtensions();

            if (factories == null || factories.Length == 0)
            {
                // No extension for the workqueue processor.
                Platform.Log(LogLevel.Fatal, "No WorkItemFactory Extensions found.");
            }
            else
            {
                foreach (object obj in factories)
                {
                    var factory = obj as IWorkItemProcessorFactory;
                    if (factory != null)
                    {
                        var type = factory.GetWorkQueueType();
                        _extensions.Add(type, factory);
                    }
                    else
                    {
                        Platform.Log(LogLevel.Error, "Unexpected incorrect type loaded for extension: {0}",
                                     obj.GetType());
                    }
                }
            }
        }