start Windows shell 命令(在 cmd.exe 中)似乎能够使用 选择的处理器关联启动进程 ,而不是启动进程 然后 设置所选处理器关联的某个(小)时间段后开始了。

start /affinity 2 something.exe

有没有办法在 .NET 应用程序中使用或不使用 P-Invoke 来做同样的事情?调用 cmd.exe /C start ... 不算数。
Process 类具有 ProcessorAffinity 属性,但如果您在调用 InvalidOperationException 方法之前尝试设置它,它会抛出 Start

最佳答案

我怀疑在这种情况下 start 命令的作用是启动挂起的进程(即,在调用 CREATE_SUSPENDED 时传递 CreateProcess ),然后设置处理器关联,然后恢复线程。

这样,虽然进程在没有设置进程关联的情况下存在,但在它开始执行时,处理器关联已经设置,因此它只在指定的处理器上运行。

关于c# - .NET 中的 "start/affinity"等价物,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2976600/

10-11 02:19