.NET 4.x Программа при проверке в цикле не дает срабатывать таймеру в классе - C#
Формулировка задачи:
Здравствуйте!
Неожиданно получил такую проблему и не ясно почему:
В приложении создал класс А.
В классе есть таймер, который запускается сразу же после реализации объекта класса, то есть таймер описан в конструкторе.
Таймер каждую секунду записывает в поле класса(dt) текущее время.
В главной программе такой смысл кода:
То есть, действия дальше будут происходить только, когда изменится значение поля dt в классе A.
Почему-то программа при проверке в цикле не дает срабатывать таймеру в классе...(
cur = А.dt; while (cur == А.dt) {}
Решение задачи: «.NET 4.x Программа при проверке в цикле не дает срабатывать таймеру в классе»
textual
Листинг программы
using System; using System.ComponentModel; using System.Runtime.CompilerServices; using System.Threading; using Timer = System.Timers.Timer; internal class Class8 { private static void Main() { var a = new AA(); a.PropertyChanged += (sender, args) => Console.Write("Изменилось время" + Environment.NewLine); while (true) { Thread.Sleep(1000); } } } internal class AA : INotifyPropertyChanged { private DateTime _dt; public DateTime Time { get { return _dt; } private set { _dt = value; OnPropertyChanged(); } } public AA() { var timer = new Timer(1000); timer.Elapsed += (sender, args) => { Time = DateTime.Now; }; timer.Enabled = true; } public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null) { PropertyChangedEventHandler handler = PropertyChanged; if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName)); } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д