Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/317.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 确定处理器支持哪些指令_C#_.net_Wmi - Fatal编程技术网

C# 确定处理器支持哪些指令

C# 确定处理器支持哪些指令,c#,.net,wmi,C#,.net,Wmi,能够确定处理器支持的指令。例如,以下链接显示了这些说明: MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、EM64T 有没有一种方法可以使用.NET、WMI或其他一些技术来实现这一点?在kernel32.dll中,您拥有可以使用的功能 编辑 关于EM64T扩展指令集,这仅在x64平台上可用,因此您可以通过WMI检查存在哪种类型的CPU: public static bool IsEM64TSupported() { ManagementObject mo; m

能够确定处理器支持的指令。例如,以下链接显示了这些说明:

MMX、SSE、SSE2、SSE3、SSSE3、SSE4.1、SSE4.2、EM64T


有没有一种方法可以使用
.NET
WMI
或其他一些技术来实现这一点?

kernel32.dll
中,您拥有可以使用的功能

编辑
关于
EM64T
扩展指令集,这仅在x64平台上可用,因此您可以通过WMI检查存在哪种类型的CPU:

public static bool IsEM64TSupported()
{
  ManagementObject mo;
  mo = new ManagementObject("Win32_Processor.DeviceID='CPU0'");
  ushort i = (ushort) mo["Architecture"];

  return i == 9;
}

但由于EM64T指令在32位操作系统中不可用,您也需要检查它。

不是本机的。可能有一些东西通过WMI公开。这个问题对于[c#]标记完全没有意义。使用精品指令需要编写汇编。一个抖动为你写下了它,它超出了你的控制。@HansPassant我认为使用C#标记是有意义的-海报正在寻找一种使用C#/NET实现这一点的方法。今年早些时候,我实际上也有类似的需求(尽管我最终在汇编中编写了解决方案)。有人开发了一个提供此功能的托管库并非不可能。使用您发送给我的pInvoke链接,我很难找到它EM64T@Aducci这可能是因为该站点是自动生成的(看起来像是从旧版本的MSDN站点生成的)。P援克是一个用于C++代码的POWER外壳包装器。脚本位于。更多的细节可以在这里找到,@dragon788:嗯。。。不pInvoke是在托管代码中执行非托管函数的方法。