private void EventDispatchWorker()
        {
            while (true)
            {
                BackstageEventBase ev;
                lock (_syncLock)
                {
                    if (_isDisposed)
                    {
                        return;
                    }
                    if (_waitingEvents.Count == 0)
                    {
                        Monitor.Wait(_syncLock);
                    }
                    if (_isDisposed)
                    {
                        return;
                    }
                    ev = _waitingEvents.Dequeue();
                }
                CurrentEvent = new BackstageEventViewModel(ev);

                var tev = ev as TwitterEventBase;
                if (tev == null || !tev.IsLocalUserInvolved)
                {
                    return;
                }

                ShowCurrentEvent = true;

                Thread.Sleep(Math.Max(Setting.EventDisplayMinimumMSec.Value, 100));
                lock (_syncLock)
                {
                    if (_waitingEvents.Count == 0)
                    {
                        Monitor.Wait(_syncLock,
                                     Setting.EventDisplayMaximumMSec.Value - Setting.EventDisplayMinimumMSec.Value);
                    }
                    ShowCurrentEvent = false;
                    Thread.Sleep(100);
                }
            }
        }
 private void EventDispatchWorker()
 {
     while (true)
     {
         BackstageEventBase ev;
         lock (_syncLock)
         {
             if (_isDisposed) return;
             if (_waitingEvents.Count == 0)
                 Monitor.Wait(_syncLock);
             if (_isDisposed) return;
             ev = _waitingEvents.Dequeue();
         }
         CurrentEvent = new BackstageEventViewModel(ev);
         ShowCurrentEvent = true;
         Thread.Sleep(Math.Max(Setting.EventDisplayMinimumMSec.Value, 100));
         lock (_syncLock)
         {
             if (_waitingEvents.Count == 0)
                 Monitor.Wait(_syncLock,
                              Setting.EventDisplayMaximumMSec.Value - Setting.EventDisplayMinimumMSec.Value);
             ShowCurrentEvent = false;
             Thread.Sleep(100);
         }
     }
 }