protected void Dispose ( bool disposing ) { if ( !mIsDisposed ) { if ( disposing ) { //Ensure we have stopped StopAync().Wait(); //Clear wait handles mWaitForClearToFetchTask.Dispose(); mWaitForClearToFetchTask = null; //It is not our responsibility // to dispose of these dependencies // since we are not the owner and we // may interfere with their orchestration mTaskBuffer = null; mExecutorRegistry = null; mPayloadTypes = null; mStateController = null; mTaskQueueProducer = null; mTaskResultQueue = null; } mIsDisposed = true; } }
public StandardTaskWorker ( TaskProcessingOptions options, ITaskBuffer taskBuffer, ITaskExecutorRegistry executorRegistry, IExecutionPerformanceMonitor performanceMonitor, ITaskQueueProducer taskQueueProducer, ITaskResultQueue taskResultQueue ) { mOptions = options ?? throw new ArgumentNullException( nameof( options ) ); mTaskBuffer = taskBuffer ?? throw new ArgumentNullException( nameof( taskBuffer ) ); mExecutorRegistry = executorRegistry ?? throw new ArgumentNullException( nameof( executorRegistry ) ); mPerformanceMonitor = performanceMonitor ?? throw new ArgumentNullException( nameof( performanceMonitor ) ); mTaskQueueProducer = taskQueueProducer ?? throw new ArgumentNullException( nameof( taskQueueProducer ) ); mTaskResultQueue = taskResultQueue ?? throw new ArgumentNullException( nameof( taskResultQueue ) ); }