예제 #1
0
        protected void OnDependenciesMet(StateBuilderContext stateBuilderContext)
        {
            Task task = Task.Run(async delegate
            {
                try
                {
                    await Task.Delay(TimeSpan.FromMilliseconds(50), stateBuilderContext.CancellationToken);
                    if (!stateBuilderContext.CancellationToken.IsCancellationRequested)
                    {
                        DoWork(stateBuilderContext);
                    }
                }
                catch (TaskCanceledException)
                {
                    stateBuilderContext.Cancel();
                }
                catch (Exception ex)
                {
                    OnException(ex);
                    stateBuilderContext.Cancel();
                }
                finally
                {
                    stateBuilderContext = null;
                }
            }, stateBuilderContext.CancellationToken);
            var taskList = _workItem.Container.Resolve <IList <Task> >();

            taskList.Add(task);

            /*Task.Run(async delegate
             * {
             *  try
             *  {
             *      await Task.Delay(TimeSpan.FromMilliseconds(50), stateBuilderContext.CancellationToken);
             *      if (!stateBuilderContext.CancellationToken.IsCancellationRequested)
             *      {
             *          DoWork(stateBuilderContext);
             *      }
             *  }
             *  catch (TaskCanceledException)
             *  {
             *      stateBuilderContext.Cancel();
             *  }
             *  catch (Exception ex)
             *  {
             *      OnException(ex);
             *      stateBuilderContext.Cancel();
             *  }
             *  finally
             *  {
             *      stateBuilderContext = null;
             *  }
             * }, stateBuilderContext.CancellationToken);*/
        }
예제 #2
0
 protected void DoWork(StateBuilderContext stateBuilderContext)
 {
     GetStateObject(stateBuilderContext);
 }
예제 #3
0
 protected abstract void GetStateObject(StateBuilderContext context);
예제 #4
0
 protected void OnDependenciesNotMet(StateBuilderContext stateBuilderContext)
 {
     stateBuilderContext.SetResult(null);
 }