Tôi có một COM add-in cho các ứng dụng văn phòng mà thực hiện một hoạt động trong nền mỗi 30 phút sử dụng một hoạt độngĐiều gì sẽ xảy ra với Bộ hẹn giờ khi PC khởi động từ chế độ ngủ?
System.Timers.Timer
nền này thực hiện xác thực người dùng qua một kết nối Internet, và tôi có báo cáo từ một số người dùng mà xác thực thất bại khi máy tính của họ đánh thức khỏi giấc ngủ. Tôi không thể tự mình tái tạo hành vi này, vì vậy lý thuyết của tôi là khi PC khởi động, hoạt động nền thực thi trước khi kết nối Internet được khôi phục (có lẽ kết nối đã bị đóng bởi Windows khi máy tính chuyển sang chế độ ngủ).
Nói chung, nếu máy tính chuyển sang chế độ ngủ sau một khoảng thời gian không hoạt động, điều gì sẽ xảy ra khi PC khởi động (theo điều khoản của Timers
)? Ví dụ: bị tạm dừng trong khi ngủ, sau đó tiếp tục lại trong khoảng thời gian đã đặt khi PC khởi động (ví dụ: nếu Timer
là 10 phút vào khoảng thời gian máy tính chuyển sang chế độ ngủ, sự kiện Timer.Elapsed
sẽ không cháy cho đến 20 phút sau PC đánh thức)? Sự kiện Timer.Elapsed
đã được xếp hàng đợi để nó có thể kích hoạt ngay khi PC khởi động không? Windows có dừng Timer
khi PC chuyển sang chế độ ngủ không? Hoặc, không Timer
tiếp tục chạy trong khi máy tính ngủ, nhưng kể từ khi kết nối Internet bị hỏng (có lẽ), thao tác nền không thể thực hiện xác thực người dùng?
Bạn có thể đăng ký các sự kiện nguồn của Windows, nếu đó là bất kỳ việc sử dụng nào: [Nhận các sự kiện Sleep/Hibernate và Resume/Wakeup trong Visual Basic.NET] (http://stackoverflow.com/a/11598083/1115360). –
Có vấn đề tương tự xảy ra nếu người dùng mất kết nối của mình trong một phút ngay trước khi bộ đếm thời gian thực thi? –
Ứng dụng của bạn cần phải chịu đựng mất kết nối tạm thời dù sao cũng có khả năng. Bạn cần một cái gì đó để đối phó với điều đó như thử lại. – usr