Пример #1
0
 public WorkItemPool(IWorkItemProcessor <T> processor)
 {
     Processor                       = processor;
     monitoredProcessor              = new MonitorableProcessor <T>(Processor);
     completionMonitor               = new CountBasedCompeletionMonitor(this);
     processor.NewWorkItem          += new EventHandler <NewWorkItemEventArgs <T> >(processor_NewWorkItem);
     processor.Complete             += new EventHandler <WorkItemResultEventArgs <T> >(processor_Complete);
     monitoredProcessor.NewWorkItem += new EventHandler <NewWorkItemEventArgs <T> >(tpWorkItem_NewWorkItem);
 }
Пример #2
0
        private void tpWorkItem_NewWorkItem(object sender, NewWorkItemEventArgs <T> e)
        {
            MonitorableProcessor <T> workItem = (MonitorableProcessor <T>)sender;

            ThreadPool.QueueUserWorkItem(workItem.WaitCallback, e.WorkItem);
        }