我正在编写一个自定义任务调度程序,我想知道是否有任何方法可以为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# PLINQ中的分区 2023-03-04
- 在Winform框架界面中改变并存储界面皮肤样式的方法 2022-11-24
- C#如何实现调取钉钉考勤接口的功能 2023-06-28
- C# log4net日志库的用法小结 2023-05-06
- c# wpf如何附加依赖项属性 2023-04-10
- C#新特性之可空引用类型 2023-05-22
- C#中异步和多线程的区别介绍 2023-06-08
- C#访问及调用类中私有成员与方法示例代码 2022-12-26
- C#算法之冒泡排序、插入排序、选择排序 2023-05-12
- C#中托管DLL和非托管DLL的区别详解 2023-03-14