Beispiel #1
0
 public EventDispatcher(IGrandOutputDispatcherStrategy strategy, Action <TimeSpan> onIdle = null)
 {
     Debug.Assert(strategy != null);
     _queue               = new ConcurrentQueue <EventItem>();
     _dispatchLock        = new object();
     _strat               = strategy;
     _onIdle              = onIdle;
     _overloadLock        = new object();
     _thread              = new Thread(Run);
     _thread.IsBackground = true;
     _strat.Initialize(() => _nonBlockingCount, _thread, out _idleManager);
     _thread.Start();
 }
Beispiel #2
0
 public EventDispatcher( IGrandOutputDispatcherStrategy strategy, Action<TimeSpan> onIdle = null )
 {
     Debug.Assert( strategy != null );
     _queue = new ConcurrentQueue<EventItem>();
     _dispatchLock = new object();
     _strat = strategy;
     _onIdle = onIdle;
     _overloadLock = new object();
     _thread = new Thread( Run );
     _thread.IsBackground = true;
     _strat.Initialize( () => _nonBlockingCount, _thread, out _idleManager );
     _thread.Start();
 }