我正在编写一个自定义任务调度程序,我想知道是否有任何方法可以为Mono上的当前线程设置处理器亲和力(在Linux上运行).对于在Windows上运行的.NET运行时,我已经按照Lenard Gunda的Running .NET threads on selected p...
我正在编写一个自定义任务调度程序,我想知道是否有任何方法可以为Mono上的当前线程设置处理器亲和力(在Linux上运行).
对于在Windows上运行的.NET运行时,我已经按照Lenard Gunda的Running .NET threads on selected processor cores文章使它起作用.但是,他的方法在Mono(和Linux)上失败了,因为:
>它要求对Kernel32.dll库中的GetCurrentThreadId进行P / Invoke调用.
> Process.Threads属性当前在Mono上返回一个空集合.
请问有人有解决方法吗?
解决方法:
请注意,您实际上无法控制何时运行任务,这取决于内核.
无论如何,在Linux上,您将需要P / Invoke到sched_setaffinity()才能将线程绑定到特定的cpu.
有关接口,请参见man sched_setaffinity.
本文标题为:c#-在Mono(Linux)上为当前线程设置处理器关联
基础教程推荐
- C#中public变量不能被unity面板识别的解决方案 2023-04-14
- unity制作瞄准镜效果 2023-04-15
- C#中各种泛型集合的使用方法总结 2023-07-05
- C#线程开发之System.Thread类详解 2023-06-08
- C#5.0中的异步编程关键字async和await 2023-06-14
- C# Winform调用百度接口实现人脸识别教程(附源码) 2023-02-17
- Unity实现虚拟键盘 2023-04-09
- Unity UGUI通过摇杆控制角色移动 2023-02-02
- 详解c# AutoMapper 使用方式 2022-11-27
- C# WINFORM自定义异常处理方法 2023-05-12