protected virtual void OnDependenciesMet(StateHandlerContext stateHandlerContext) { Task.Run(async delegate { try { await Task.Delay(TimeSpan.FromMilliseconds(50), stateHandlerContext.CancellationToken); if (!stateHandlerContext.CancellationToken.IsCancellationRequested) { DoWork(stateHandlerContext); } } catch (TaskCanceledException) { stateHandlerContext.Cancel(); } catch (Exception ex) { OnException(ex); stateHandlerContext.Cancel(); } finally { stateHandlerContext = null; } }, stateHandlerContext.CancellationToken); }
protected abstract void DoWork(StateHandlerContext stateHandlerContext);
protected virtual void OnDependenciesNotMet(StateHandlerContext stateHandlerContext) { }