2012-07-23 63 views
2

我需要为某个线程设置CPU/RAM使用的最大限制。这怎么可以通过.net(不使用虚拟化)来完成?.net中的线程的RAM和CPU限制

+0

“RAM”,你的意思是堆栈或堆?你对堆栈大小有一定的灵活性,但是堆和CPU呢?没有太多的AFAIK。 – 2012-07-23 07:10:12

回答

0

AFAIK你不能每个线程做到这一点。你只能按照每个进程来完成它。您可以做的唯一事情是描述here

+0

真的,这可能吗?请举例或参考。 – leppie 2012-07-23 07:31:31

+0

@leppie您可以为进程设置处理器关联性,这可以有效地限制其CPU使用率。不确定记忆......不认为这是可能的。 – 2012-07-23 07:35:29

+1

要限制RAM,您可以使用http://msdn.microsoft.com/en-us/library/windows/desktop/ms684161%28v=vs.85%29.aspx – Eiver 2012-07-23 07:38:15

0

Windows不提供限制线程的CPU或内存使用情况的机制。

但是,您可以通过调整线索的优先级来获得类似效果。具有较高优先级的线程被赋予相对较大的计算机资源份额,而具有较低优先级的线程在必要时被下调,以便为具有较高优先级的线程腾出空间。

在.NET的世界里,通过Thread.Priority property可以方便地看到它,它接受ThreadPriority values之一。

请注意,线程进程都具有优先级,线程的基本优先级将根据您为Thread.Priority属性设置的值及其进程的优先级来确定。

相关问题:How can I programmatically limit my program's CPU usage to below 70%?