Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
您能否限制应用程序在.NET中可以使用的处理资源_.net_Resources_Process - Fatal编程技术网

您能否限制应用程序在.NET中可以使用的处理资源

您能否限制应用程序在.NET中可以使用的处理资源,.net,resources,process,.net,Resources,Process,我想编写一个在后台运行的.NET应用程序(保持在任务栏中),并执行长时间的操作,例如将文件文件夹从一个位置复制到另一个位置。我希望以这样一种方式编写它,即其他正在运行的应用程序不会太慢。我不在乎后台应用程序需要多长时间。是否有一种方法可以限制应用程序的处理/内存资源。我知道,当你创建线程时,你可以将它们的优先级设置为不同的级别。将线程优先级设置为低会产生这种效果吗?或者它的优先级只会低于属于同一应用程序的任何其他线程 是的,您可以创建一个新的线程,并在启动它之前设置优先级属性: Thread t

我想编写一个在后台运行的.NET应用程序(保持在任务栏中),并执行长时间的操作,例如将文件文件夹从一个位置复制到另一个位置。我希望以这样一种方式编写它,即其他正在运行的应用程序不会太慢。我不在乎后台应用程序需要多长时间。是否有一种方法可以限制应用程序的处理/内存资源。我知道,当你创建线程时,你可以将它们的优先级设置为不同的级别。将线程优先级设置为低会产生这种效果吗?或者它的优先级只会低于属于同一应用程序的任何其他线程

是的,您可以创建一个新的
线程
,并在启动它之前设置
优先级
属性:

Thread thread = new Thread(MethodToRun);
thread.Priority = ThreadPriority.Lowest;
thread.Start();

如果您正在unix中寻找具有NICE精度的东西,我不确定是否存在。但您可以设置流程的优先级,这可能会有所帮助

System.Diagnostics.Process.GetCurrentProcess().PriorityClass =System.Diagnostics.ProcessPriorityClass.Low;

希望有帮助

这与史蒂文的建议有什么不同?史蒂文的解决方案是每线程工作,我的帖子是每进程。如果我理解正确,通过设置优先级类,进程中的所有线程都将相对于进程本身进行优先级排序。通过设置进程优先级,可以将每个线程限制为该优先级。然而,史蒂文的解决方案可能更好,因为你可能想要那种有限的控制,而不是放弃所有事情的优先级。我对他的解决方案也有+1,“史蒂文的解决方案可能更好”。你读到了吗,乔丹?请记下我的答案:-P