public void Stop() { if (Log.IsTraceEnabled) { _log.Trace(string.Format(Resources.ProcessorThreadStopping, _thread.ManagedThreadId, _processor.GetType().FullName)); } _cancellationTokenSource.Cancel(); _processor.AttemptDispose(); if (_thread.IsAlive) { _thread.Join(ThreadJoinTimeoutInterval); } }