예제 #1
0
 public bool Execute()
 {
     if (WorkFunc == null)
     {
         return(false);
     }
     return(WorkFunc.Invoke().ConfigureAwait(false).GetAwaiter().GetResult());
 }
예제 #2
0
 public bool Execute()
 {
     if (WorkFunc == null)
     {
         return(false);
     }
     return(WorkFunc.Invoke());
 }
예제 #3
0
 public bool Execute()
 {
     if (WorkFunc == null)
     {
         return(false);
     }
     Result = WorkFunc.Invoke();
     return(Result != null && Result.Success);
 }
예제 #4
0
        public ParallelExecutor(Func <TL> initTL, WorkFunc func, Action <TL> freeTL, C context, int maxThreads, CancellationToken cancel)
        {
            _queue        = new BlockingCollection <T>(new ConcurrentQueue <T>());
            _cancelToken  = cancel;
            _initTLfunc   = initTL;
            _workFunc     = func;
            _freeTLfunc   = freeTL;
            _threadsToUse = maxThreads;
            _context      = context;
            _finished     = new ManualResetEvent(false);

            StartWorkerThreads(maxThreads);
        }