System.Diagnostic是否通过查询WMI或其他方式来获取其数据? WMI是否查询所有这些操作用于获取系统信息(如正在运行的进程)的最基本方式,还是有更直接的方法?System.Diagnostic是否通过查询WMI或其他方式获取其数据?
1
A
回答
4
不,它不使用WMI。它使用mscorlib.dll和System.dll中System.Win32名称空间内部类的直接本地API调用。大多数类如PerformanceCounter和EventLog只是访问使用对advapi32.dll的本机调用的注册表。其他功能(如获取进程列表)使用winnt.dll或kernel32.dll中的调用,具体取决于Windows的版本。你可以找到更多有关使用本机Win32调用here以及性能计数器更详细的信息here。
您可以使用dotPeek或Reflector.NET验证此问题,并检查mscorlib.dll和System.dll中的System.Diagnostics。
1
如果您想了解自己,可以进入.NET框架源代码。
这里的步骤就如何通过Visual Studio做到这一点:http://blogs.microsoft.co.il/blogs/arik/archive/2010/07/12/step-into-net-framework-4-0-source-code.aspx
相关问题
- 1. 通过WMI查找pathspec是否是目录或文件(或其他)?
- 2. 通过replaceDialog或任何其他方式
- 3. 一个数组(或其他方式)获取数据
- 4. WMI:获取无效类错误通过其他程序
- 5. 如何在Hyperledger Composer中查询或获取其他链式代码数据?
- 6. 如何通过mysql查询获取表结构及其数据?
- 7. 通过用JOIN或其他方式替换IN()子句来加速MySQL查询?
- 8. 通过排除其他查询
- 9. 是否有任何其他的方式来BigQuery中通过API除了通过数据流中插入数据
- 10. 是否有任何其他方式获取Googlescript中的URL?
- 11. 有没有办法通过API或其他方式获取Instagram @Mention History?
- 12. 使用SyncStatusObserver或通过其他方式获取同步状态信息?
- 13. 多线程对象与WMI查询和一些其他查询
- 14. 使用Parse获取其他查询列
- 15. Group按查询 - 任何其他方式?
- 16. 编写的Django查询其他方式
- 17. 通过反射或其他方式重写java final方法?
- 18. 通过调用ajax(跨域)获取数据的其他url
- 19. 通过WQL查询调用WMI方法
- 20. 通过WMI或T-SQL获取总CPU#
- 21. iOS预加载/通过API或其他方式缓存谷歌地图数据?
- 22. has_many通过和其他数据:计数
- 23. 查询是否在数据库的其他地方引用了外键
- 24. 查询数据取决于来自其他表的数据
- 25. 通过名称或其他东西获取React.js组件
- 26. Android - 按钮:通过意图/其他方式通过数据接收
- 27. 是否有可能通过编程方式获取其中一个子节点
- 28. C# - 通过Gmail或其他方式发送电子邮件?
- 29. 如何通过许可或其他方式保护FCM服务
- 30. FormsAuthentication.SetAuthCookie通过服务(或其他远程方式)
它非常依赖于你所指的数据。为了获得有用的答案,你必须比'System.Diagnostic'更具体。无论是那样的,还是像亚当所说的那样,你自己单步执行代码。但请记住,获取信息的地方都是非常抽象的设计。你不应该知道或关心信息的来源。如果您尝试自己实现此类功能,请更新问题以更具体地了解您想要获取的信息。 – 2011-12-20 04:51:21