public void StartTimer(string roomName)
{
var roomTimer = GetRoomTimer(roomName);
var room = GetRoom(roomName);
if (roomTimer == null)
{
//Create a timer with a two second interval.
roomTimer = new System.Timers.Timer(2000);
roomTimer.Elapsed += (sender, e) => MyElapsedMethod(sender, e, room.Item2);
roomTimer.AutoReset = true;
roomTimer.Enabled = true;
_rooms[roomName].Timer = roomTimer;
}
else
{
roomTimer.Start();
roomTimer.AutoReset = true;
roomTimer.Elapsed += (sender, e) => MyElapsedMethod(sender, e, room.Item2);
_rooms[roomName].Timer = roomTimer;
}
}
public void StopTimer(string roomName)
{
var roomTimer = GetRoomTimer(roomName);
roomTimer.Stop();
}
private static void MyElapsedMethod(Object source, ElapsedEventArgs e, TwilioRoomDto room)
{
room.Time += room.Timer.Interval;
}
Когда таймер запускается, а затем останавливается и снова перезапускается, он не отслеживает время так точно. Промахивается почти вдвое. Почему это так, я держу в словаре пропуски времени.
public void StopTimer(string roomName) { var roomTimer = GetRoomTimer(roomName); roomTimer.Stop(); }
private static void MyElapsedMethod(Object source, ElapsedEventArgs e, TwilioRoomDto room) { room.Time += room.Timer.Interval; } [/code] Когда таймер запускается, а затем останавливается и снова перезапускается, он не отслеживает время так точно. Промахивается почти вдвое. Почему это так, я держу в словаре пропуски времени.