我想编写一个在后台运行的.NET应用程序(停留在任务栏中)并执行一项长时间操作,例如将文件夹从一个位置复制到另一个位置。我想以这样的方式编写它,以便运行的其他应用程序不会减慢很多。我不关心后台应用程序需要多长时间。有没有办法可以限制应用程序的处理/内存资源。我知道当你创建线程时,你可以将它们的优先级设置为不同的级别。将线程优先级设置为低是否会产生此影响,或者它的优先级是否会低于属于同一应用程序的任何其他线程?
答案 0 :(得分:3)
是的,您可以在启动之前创建新的Thread
并设置Priority
属性:
Thread thread = new Thread(MethodToRun);
thread.Priority = ThreadPriority.Lowest;
thread.Start();
答案 1 :(得分:1)
如果你在unix中寻找NICE精度的东西,我不确定是否存在。但是您可以设置可能有帮助的过程的优先级。
System.Diagnostics.Process.GetCurrentProcess().PriorityClass =System.Diagnostics.ProcessPriorityClass.Low;
希望有所帮助。