Tôi đang sử dụng Bộ hẹn giờ để chạy một sự kiện định kỳ trong một khoảng thời gian khá dài (2 phút). Điều này làm việc tốt. Tuy nhiên, tôi muốn sự kiện này kích hoạt ngay lập tức khi bộ hẹn giờ được tạo (thay vì đợi 2 phút).Làm cho hệ thống .Tây lửa.Timers.Timer cháy ngay lập tức
Lưu ý rằng tôi không thể làm điều này chỉ bằng cách gọi phương thức, vì phải mất một thời gian để chạy và sẽ chặn ứng dụng. Tôi cần bộ đếm thời gian để kích hoạt như bình thường và chạy sự kiện trong một chủ đề riêng biệt.
Cách tốt nhất tôi có thể nghĩ để làm điều này vào lúc này là subclassing bộ đếm thời gian và tạo ra một phương pháp TriggerManually
mà có thể làm một cái gì đó như thế này:
- Bật tự động reset tắt
- Đặt khoảng thời gian để 1ms
- kích hoạt tính năng hẹn giờ
Điều này sẽ kích hoạt các sự kiện trôi qua ngay lập tức, và tôi có thể đặt tất cả các thiết lập trở lại bình thường.
Dường như có một chút bùng binh. Có cách nào tốt hơn để làm điều đó không?
@Mitch - chỉ cần chứng minh rằng bạn đang Mặc dù có con người của đại diện điên rồ của bạn :) – Gishu
Yep, công trình này. System.Threading.Timer là một chút khó khăn hơn để sử dụng, nhưng nó làm những gì tôi cần. Cảm ơn! – Nathan
Được cảnh báo rằng một ngoại lệ chưa được xử lý trong cuộc gọi lại của «System.Threading.Timer' [sẽ làm hỏng ứng dụng của bạn] (http://stackoverflow.com/questions/1718598/throwing-exceptions-in-callback-method-for-timers). –