我正在编写一个自定义任务调度程序,我想知道是否有任何方法可以为 Mono(在 Linux 上运行)上的当前线程设置处理器亲和性。
对于在 Windows 上运行的 .NET 运行时,我已经通过遵循 Lenard Gunda 的Running .NET threads on selected processor cores文章设法让它工作;然而,他的方法在 Mono(和 Linux)上失败了,因为:
- 它需要
GetCurrentThreadId
在Kernel32.dll
库中调用 P/Invoke。 - 该
Process.Threads
属性当前在 Mono 上返回一个空集合。
有人请有解决方法吗?