我想执行命令行工具来处理数据.它不需要阻止.我希望它是低优先级.所以我写了下面的内容
Process app = new Process();
app.StartInfo.FileName = @"bin\convert.exe";
app.StartInfo.Arguments = TheArgs;
app.PriorityClass = ProcessPriorityClass.BelowNormal;
app.Start();
Run Code Online (Sandbox Code Playgroud)
但是,我得到一条System.InvalidOperationException消息"没有进程与此对象关联." 为什么?如何以低优先级正确启动此应用程序?
没有这条线app.PriorityClass = ProcessPriorityClass.BelowNormal;,应用运行正常.
Rob*_*vey 46
尝试在启动该过程后设置PriorityClass.任务管理器以这种方式工作,允许您为已经运行的进程设置优先级.
您可以通过稍微破解来创建优先级较低的进程.您降低父进程优先级,创建新进程,然后恢复为原始进程优先级:
var parent = Process.GetCurrentProcess();
var original = parent.PriorityClass;
parent.PriorityClass = ProcessPriorityClass.Idle;
var child = Process.Start("cmd.exe");
parent.PriorityClass = original;
Run Code Online (Sandbox Code Playgroud)
child将Idle在开始时优先处理流程.
| 归档时间: |
|
| 查看次数: |
12752 次 |
| 最近记录: |