我正在编写一个自定义任务调度程序,我想知道是否有任何方法可以为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# WebService创建、发布、调用的实例讲解 2022-12-01
- C# 程序通用结构 2023-05-11
- c# DataDirectory的用法 2023-03-09
- c#中WinForm用OpencvSharp实现ROI区域提取的示例 2023-06-04
- Unity3D 计时器的实现代码(三种写法总结) 2023-04-10
- C#-UWP Windows Store应用程序上的TLS客户端证书认证 2023-11-12
- C#的String和StringBuilder详解 2023-04-21
- C#回收机制之资源回收托管 2023-06-04
- c# – 将数据类型nvarchar转换为datetime SQL Server时出错 2023-11-09
- C#获取摄像头拍照显示图像的方法 2023-05-25