C# 如何将两个线程分配给不同的CPU
双核处理器。WindowsXP操作系统。
同一个进程,有两个相互独立的线程。
我想让两个线程分别在两个不同的CPU上执行。
我查资料说API SetThreadAffinityMask()可以设置。
但是,C#的封装是什么呢?
我只找到一个Process.ThreadAffinity属性。这个不能指定单个线程吧?
------解决方案--------------------.NET是应用层虚拟机...也就是说不会封装这种硬件抽象层的东西,不给你操作CPU的机会...除非使用非托管代码...
------解决方案--------------------这个题目有意思,关注,同时试问楼主,为什么有这种需求呢?
------解决方案--------------------帮顶
------解决方案--------------------不懂,学习
------解决方案--------------------如果API可以,就用API实现
API不是离CPU更近
------解决方案--------------------mark
以后来学习
------解决方案--------------------其他地方抄的
[DllImport("kernel32.dll")]
static extern IntPtr GetCurrentThread();
[DllImport("kernel32.dll")]
static extern IntPtr SetThreadAffinityMask(IntPtr hThread, IntPtr dwThreadAffinityMask);
------解决方案--------------------不错,有意思
一些CPU测试软件目前都是怎对单核的
------解决方案--------------------mark