Tôi đã có một chương trình mà tôi muốn giới hạn việc sử dụng CPU (vâng, tôi đã đặt mức độ ưu tiên của quy trình và có, nó được tối ưu hóa). Nó luôn chiếm 100% năng lượng CPU, bị ràng buộc CPU và khối lượng công việc của nó sẽ không bao giờ kết thúc.
Tôi muốn giới hạn việc sử dụng quy trình này ở mức 30% sử dụng CPU và cách duy nhất tôi tìm thấy để thực hiện điều này trong một ứng dụng Windows là định kỳ ngủ chương trình. Đây là kết quả sử dụng CPU:
Việc sử dụng CPU được hiển thị ở trên là trong một giây. Nếu bạn lấy giá trị trung bình của biểu đồ đó, nó là ~ 32% (mục tiêu là 30). Trong thực tế, trình quản lý tác vụ báo cáo quá trình đang sử dụng từ 25 đến 35% mức sử dụng CPU bất cứ lúc nào.
Chương trình của tôi có thể được chạy trên máy tính xách tay, nơi người dùng có thể không muốn người hâm mộ của họ bật cho một quá trình nền. Ngoài ra, nhiều máy tính xách tay có trạng thái tiết kiệm năng lượng cho CPU của chúng và tôi không muốn chương trình của mình loại bỏ CPU khỏi trạng thái tiết kiệm năng lượng. Việc sử dụng CPU biến động liên tục được hiển thị ở trên sẽ bật quạt của máy tính xách tay hay loại bỏ nó khỏi trạng thái tiết kiệm năng lượng của nó (mức sử dụng có thể giảm xuống 15% hoặc thậm chí ít hơn, nhưng nó vẫn tạo ra dao động từ 100% đến 0%).