【发布时间】:2010-06-04 18:04:46
【问题描述】:
start Windows shell 命令(在 cmd.exe 中)似乎能够使用选定的处理器关联启动进程,而不是启动进程然后在启动后的某个(小)时间段内设置所选处理器的亲和性。
start /affinity 2 something.exe
有没有办法在 .NET 应用程序中使用或不使用 P-Invoke 来做同样的事情?拨打cmd.exe /C start ... 不算数。
Process 类具有ProcessorAffinity 属性,但如果您在调用Start 方法之前尝试设置它,则会抛出InvalidOperationException。
【问题讨论】:
-
您确定内部
start不会启动进程然后设置关联性吗? -
@Andrey 我们如何找出 start 在内部做了什么?
-
我认为我的假设是错误的,看起来 Jerry Coffin 知道这个秘密
-
@Andrey:注意我说“我怀疑”——我实际上并没有查看启动命令的代码来检查。无论如何,准确地模仿它比知道如何让你的代码做你想做的事情更有趣。
-
@Jerry Coffin 与我相比,您的假设对我来说看起来更加可靠和合理。顺便说一句,我认为 start 不是程序而是 cmd 的一部分,这并不容易解除
标签: c# .net windows multithreading winapi