Как остановить или указать начальное значение для таймера в Reactive Extensions - C#
Формулировка задачи:
Хай народ, мне нужно сделать свой таймер, потому что стандартный System.Timers.Timer работает некорректно Для этого нагуглил расширение Reactive. И вот в нем есть куча всяких штучек непонятных. Мне нужно могти запускать таймер, когда нужно, и чтобы счет тиков таймера начинался с определенного значения. Еще надо уметь приостанавливать таймер, ну ставить на паузу. Так вот, что я осилил:
проблема в том, что я не знаю, как остановить или приостановить работу этого таймера и еще одна проблема в том, что счетчик таймера начинает отсчет не с 10000, вернее с 10000, но не совсем, на картинке все видно.
Поясните, пазязя, как мне остановить таймер и как начать его выполнение с нужного значения? ну чтобы счетчик этот считался с 10000, например.
class Program { static void Main(string[] args) { var observ = Observable.Publish(Observable.Timer(TimeSpan.Zero, TimeSpan.FromMilliseconds(500)),10000); //каждые 500 миллисекунд будет выполнятся какой-то метод, отсчет начинается с 10000 observ.Subscribe(method); //указываю, какой метод будет выполняться observ.Connect(); //таймер начал работать Console.Read(); } static void method(long t) //сюда передается счетчик таймера, то есть число уже произошедших тиков таймера { Console.WriteLine(t); //просто вывожу это число } }
Решение задачи: «Как остановить или указать начальное значение для таймера в Reactive Extensions»
textual
Листинг программы
private DateTime startTime; private void Form1_Load(object sender, EventArgs e) { System.Timers.Timer timer = new System.Timers.Timer(); timer.Interval = 50; timer.Elapsed += Handler; StartTime=DateTime.Now; timer.Start(); } private void Handler(object sender, ElapsedEventArgs e) { textBox1.Invoke(new Action(() => { textBox1.Text = ((DateTime.Now - startTime).TotalMilliseconds/50).ToString(); })); }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д