Jak zresetować zdarzenie

0
 
public Form_Load()
 {
connectedStatus += new EventHandler(OnTimeCheckConnection);
}
...
        private event EventHandler connectedStatus;

        private void OnTimeCheckConnection(object sender, EventArgs e)
        {           
            MyTimer ti = new MyTimer();
            ti.Elapsed += new ElapsedEventHandler(ChangeStatusToUnlogged);
            ti.Interval = authorizationTimeInterval;
            ti.Tag = sender;
            ti.AutoReset = false;
            ti.Start();          
        }

        public class MyTimer : System.Timers.Timer
        {
            public object Tag { get; set; }          
        }


        private void ChangeStatusToUnlogged(object sender, ElapsedEventArgs e)
        {
            MyTimer ti = (MyTimer)sender;
            TimerInfo tinfo = (TimerInfo)ti.Tag;
            //wylogowanie
        }

        private void MyThreadPoolMethod()
        {
              connectedStatus(tinfo, null);
             
        }

 class TimerInfo
    {     
        public Boolean Cancel { get; set; }
    }
 

Program ma działać tak, że jak w wątku odebrany pakiet nie przyjdzie w ciągu czasu authorizationtimeinterval to klient ma zostać wylogowany. ConnectedStatus przesyła obiekt z danymi do wylogowania klienta i uruchamia timer, który po określonym czasie zrobi wylogowanie. Jak zrobić zresetowanie timera nim się wykona jego metoda?

0

To znaczy chcesz go zresetować, czyli żeby jeszcze raz liczył ten czas i ewentualnie wylogował?
Ja zawsze robię to tak:

myTimer.Stop();
myTimer.Start();

Poza tym, czy tak trudno wpisać swoje pytanie w wyszukiwarkę i poszukać samemu odpowiedzi?

1 użytkowników online, w tym zalogowanych: 0, gości: 1