Tôi đang sử dụng System.Timers.Timer trong ứng dụng WPF của mình. Tôi muốn hiểu làm thế nào Timer hành xử, sau khi máy tính là ngủ đông, và ngủ. Tôi nhận được một số vấn đề lạ với ứng dụng của mình, sau khi máy tính được khôi phục từ chế độ ngủ đông.Cách System.Timers.Timer hoạt động trong ứng dụng WPF, sau Hibernate và Sleep?
Tôi nên xử lý bộ hẹn giờ như thế nào và chúng hoạt động như thế nào khi máy tính ở chế độ ngủ đông/ngủ đông?
Tôi có bộ hẹn giờ nửa đêm sẽ hoạt động sau nửa đêm để đặt lại giá trị mặc định trên giao diện người dùng.
Đây là mã tạo bộ đếm thời gian:
private void ResetMidnightTimer()
{
// kill the old timer
DisposeMidnightTimer();
_midnightTimer = new Timer();
// scheduling the timer to elapse 1 minute after midnight
_midnightTimer.Interval = (DateTime.Today.AddDays(1).AddMinutes(1) - DateTime.Now).TotalMilliseconds;
_midnightTimer.Elapsed += (_, __) => UpdateRecommendedCollectingTime();
_midnightTimer.Enabled = true;
_midnightTimer.Start();
}
On contructor trang UI, tôi gọi phương thức trong đó kêu gọi ResestMidnightTimer() và tạo ra bộ đếm thời gian de facto. Sau đó, bộ đếm thời gian chờ đợi ban đêm.
Khi thời gian ban đêm (thực sự là 12:01 sáng), bộ hẹn giờ hoạt động, đặt lại giá trị mặc định như mong đợi và sau đó hủy hẹn giờ hiện có. Cuối cùng nó tạo ra một bộ đếm thời gian nửa đêm mới cho ngày hôm sau. Nhưng nếu tôi cố gắng ngủ đông máy tính trong ngày đó, bộ hẹn giờ nửa đêm sẽ không hoạt động và sẽ không đặt lại các giá trị mặc định.
Đó có phải là vì trong khi ngủ đông nó chỉ trì hoãn việc xử lý sự kiện theo cùng một khoảng thời gian nó được ngủ đông không?
Bạn đang gặp phải vấn đề gì (chỉ tò mò)? – M4N
@ M4N Tôi đã chỉnh sửa câu hỏi. – User1234