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/