Beispiel #1
0
        private void Dispose(bool disposing)
        {
            if (!disposed)
            {
                idleTimer.Dispose();

                Delegate[] delegateBuffer = null;
                if (IdleEntered != null)
                {
                    delegateBuffer = IdleEntered.GetInvocationList();
                    foreach (EventHandler del in delegateBuffer)
                    {
                        IdleEntered -= del;
                    }
                    IdleEntered = null;
                }

                if (IdleStoped != null)
                {
                    delegateBuffer = IdleStoped.GetInvocationList();
                    foreach (EventHandler del in delegateBuffer)
                    {
                        IdleStoped -= del;
                    }
                    IdleStoped = null;
                }

                if (!hooksRemoved)
                {
                    RemoveHooks();
                }

                disposed = true;
            }
        }
Beispiel #2
0
 private void CheckIdleState(object sender)
 {
     syncContext.Invoke(s =>
     {
         var idleTimeSpan = IdleTimeWatcher.GetIdleTimeSpan();
         if (idleTimeSpan >= TimeSpan.FromMilliseconds(settingsService.Settings.IdleTimer))
         {
             idleEntered = true;
             idleTimer.Change(Timeout.Infinite, Timeout.Infinite);
             SetHooks();
             IdleEntered.InvokeSafely(this, EventArgs.Empty);
         }
     });
 }