基于每个磁盘使用率或CPU使用情况的节流应用程序

问题描述:

任何人都可以推荐一种基于当前磁盘使用率甚至CPU使用率来限制应用程序的方式。基于每个磁盘使用率或CPU使用情况的节流应用程序

我正在写的应用程序扫描硬盘上的文件,并且本身就是相当硬盘密集型的。 任何人都可以推荐一种方法,当磁盘使用率很高时(即用户自己正在运行非常硬盘或CPU密集型应用程序),我可以降低我的应用程序(或甚至暂停它)?基本上我的应用程序不应该妨碍用户的生产力。我知道这本身就是一个非常大的研究课题。但我至少需要一些线索,我将如何处理这个问题。

任何形式的帮助是高度赞赏。 :)

谢谢。
Samrat。

看看this“我如何以编程方式限制我的程序的CPU使用率低于70%?”)和this“的Win32线程调度#拉里·奥斯特曼答案”

Vista has added I/O Prioritization到Windows,所以如果你使用的是平台,你可以让O/S负责它。

对于其他操作系统可能会发现I/O延迟,并且如果它超过了某个预定义的阈值,那么让磁盘扫描程序稍微休眠一下就行了?

+0

我喜欢这两个评论。观察IO队列。如果它备份太多,睡觉。 – Bengie 2011-02-07 18:59:45