我正在尝试编写一个Silverlight 4 Windows边栏小工具,除其他外,它可以监控每个CPU核心的使用情况(以百分比表示)和主机计算机的RAM使用情况(以字节为单位)。我尝试过使用System.Management,但Visual Studio不允许我添加它,因为它不是Silverlight的一部分。
最后,我正在寻找一种简单地返回特定CPU核心用法的方法。自动检测核心数量将是一个奖励。 RAM也是如此。
广泛的搜索让我相信这可以通过COM +自动化实现,但我对如何实现这一点毫无头绪。任何方向都会非常感激。
答案 0 :(得分:1)
您可以使用System.Windows.Analytics类来获取系统统计信息..
它有一个AverageProcessorLoad,您可以使用它来获取当前的CPU使用率(0到1之间的值) 。仅适用于 Silverlight 。
您可以像这样使用它:
float averageCPUUsage = System.Windows.Analytics.AverageProcessorLoad;
float myAppCPUUsage = System.Windows.Analytics.AverageProcessLoad;// Get cpu usage by your current app.
<强>更新强>
但是从Silverlight来看,这是我们可以做到的..对于RAM和处理器数量,你需要在客户端安装somthing来告诉你..从浏览器你不能。
答案 1 :(得分:1)
您还可以查看this article上System.Windows.Analytics
用法的示例。
该文章的一小段代码,展示了System.Windows.Analytics
的使用情况:
public partial class Page : UserControl
{
Analytics analytics;
public Page()
{
InitializeComponent();
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
}
void CompositionTarget_Rendering(object sender, EventArgs e)
{
if (analytics == null)
analytics = new Analytics();
}
}