2011-10-25 14 views
5

Tôi đã sử dụng bộ hẹn giờ và tôi thấy nó rất hữu ích trong khi quyết định trong vài giây hoặc mili giây. Bây giờ tôi có cảm giác mạnh mẽ rằng việc chạy bộ đếm thời gian liên tục tăng dần mức tiêu thụ chu trình bộ xử lý.Liệu 'hẹn giờ' có mất nhiều năng lượng CPU hơn không?

Tôi đã tạo một ứng dụng (C#) và sử dụng 'đánh dấu hẹn giờ' để thực hiện lệnh 'ba' trên 1000 mili giây (1 giây) và tôi nhận thấy rằng sau 5 phút ứng dụng đã tiêu thụ 5% công suất CPU và 10% sau 10 phút.

Nếu tiến trình này vẫn không đổi thì điều gì sẽ xảy ra sau 4-5 giờ nếu tôi chạy ứng dụng của mình dưới nền?

Tôi có nên tránh sử dụng quá nhiều thời gian không?

private void currentTime_Tick(object sender, EventArgs e) 
{ 
    label1.Text = DateTime.Now.ToString("HH:mm:ss tt"); 
    label2.Text = dt.AddSeconds(i).ToString("HH:mm:ss"); 
    i++; 
} 
+0

loại bộ hẹn giờ nào? –

+0

Tôi không nghĩ, tôi liên quan đến việc sử dụng bộ hẹn giờ. Phải có gì đó trong ** mã ** của bạn –

+0

Bạn có chắc đó là bộ hẹn giờ chứ không phải mã khác? Có lẽ các tài liệu tham khảo không được dọn dẹp hoặc các đối tượng đang nắm giữ ngày càng nhiều dữ liệu? – Oded

Trả lời

1

Dường như với tôi rằng không phải là hẹn giờ chính nó là nguyên nhân, nhưng bất cứ điều gì hướng dẫn được gọi bằng nó. Bạn có tạo ra các đối tượng trong những hướng dẫn của bạn, hoặc gọi một cái gì đó chạy trong một chủ đề riêng biệt? Bắt đầu chủ đề hoặc phân bổ tài nguyên và quên đóng chúng có thể dẫn đến hành vi mà bạn mô tả.

+0

Trong hai hướng dẫn đầu tiên tôi đang thay đổi 'văn bản (s)' của hai 'nhãn' và gia số thứ ba tăng một giá trị 'đôi'. –

+2

Trừ khi một số nhãn đó có một số sự kiện onChanged() hoặc các sự kiện tương tự đang hoạt động, vấn đề không nên nằm trong phần mã này. Bạn đã thử cô lập vấn đề? Điều gì sẽ xảy ra khi bạn nhận xét mọi thứ bên trong "đánh dấu hẹn giờ" của bạn? Điều gì sẽ xảy ra nếu bạn đặt khoảng thời gian hẹn giờ chậm hơn 10 lần hoặc không khởi động được? – vsz