Một chút vào cuối ngày này, tôi biết, nhưng. . .
System.Timers.Timer
là trình bao bọc xung quanh System.Threading.Timer
, lần lượt là trình bao bọc .NET xung quanh Windows 'Timer Queues. Bộ đếm thời gian xếp hàng giờ rất nhẹ - sử dụng ít tài nguyên hệ thống. Tôi đã không thu nhỏ đến hàng nghìn bộ tính giờ, nhưng hàng trăm bộ hẹn giờ chỉ hoạt động tốt. Từ những gì tôi đã có thể thu nhỏ của việc thực hiện, tôi không thể tưởng tượng rằng sẽ có bất kỳ rắc rối với hàng ngàn giờ.
Có thể có một số giới hạn về số giờ bạn có thể có trong bất kỳ hàng đợi hẹn giờ cụ thể nào. Tôi không biết giới hạn đó là gì. Khi tôi điều tra các bộ tính giờ này cách đây một năm hoặc lâu hơn, có vẻ như .NET Framework tạo ra một hàng đợi thời gian cho mỗi quá trình (hoặc có thể là mỗi miền ứng dụng) và tất cả các bộ hẹn giờ bạn tạo được đưa vào hàng đợi đó. Nó có thể không có ý nghĩa để nhân đôi chức năng hàng đợi hẹn giờ bằng cách tạo ra hệ thống của riêng bạn sử dụng một bộ đếm thời gian duy nhất và một số cơ chế xếp hàng ưu tiên để kiểm soát những gì được gọi tiếp theo. Đó là những gì hàng đợi bộ đếm thời gian đã làm cho bạn rồi.
Dường như bạn có thể dễ dàng xây dựng chương trình thử nghiệm tạo 10.000 bộ tính giờ. Đặt từng cái một để đánh dấu một giây sau lần cuối cùng và đặt khoảng thời gian của nó thành 10.000 giây. Sau đó ngồi lại và xem nó đánh dấu. Hoặc có chương trình của bạn theo dõi những người nên đánh dấu vào tiếp theo và những người thực sự đánh dấu tiếp theo.
Nguồn
2010-09-02 23:36:55
Tôi có câu hỏi tương tự về Threading.Timer. – GregC
@GregC, bạn có thể đăng liên kết tới nó để tôi có thể xem các câu trả lời đó không? – tster