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?