C#如何获取网卡使用率,并启动或暂停某服务?

C#如何获取网卡使用率并启动或暂停某服务?懂的帮下忙。比如我的网卡使用率达到90%了,关闭系统中某一服务,当下降到70%了,又启动某一服务?怎么做?... C#如何获取网卡使用率并启动或暂停某服务?懂的帮下忙。比如我的网卡使用率达到90%了,关闭系统中某一服务,当下降到70%了,又启动某一服务?怎么做? 展开
 我来答
若以下回答无法解决问题,邀请你更新回答
匿名用户
推荐于2016-05-25
展开全部
这并不难,我们先来获取网卡的流量信息: /// <summary>
/// 代表一个网络适配器安装在机器上。
/// 这一类的属性可以用来获取当前网络速度。
/// </summary>
public class NetworkAdapter
{
/// <summary>
/// 此类的实例应该是只有在NetworkMonitor创建。
/// </summary>
internal NetworkAdapter(string name)
{
this.name = name;
} private long dlSpeed, ulSpeed; // 下载\上传速度在每秒字节。
private long dlValue, ulValue; // 下载\上传的字节计数器的值。
private long dlValueOld, ulValueOld; // 下载\上传计数器的值一秒钟前,以字节为单位。 internal string name; // 该适配器的名称。
internal PerformanceCounter dlCounter, ulCounter; // 性能计数器监视上传和下载速度。 /// <summary>
/// 筹备监测。
/// </summary>
internal void init()
{
// 由于dlValueOld和ulValueOld中使用的方法刷新来计算网络速度,他们必须被初始化。
this.dlValueOld = this.dlCounter.NextSample().RawValue;
this.ulValueOld = this.ulCounter.NextSample().RawValue;
} /// <summary>
/// 获取新的样本,性能计数器,并在dlSpeed刷新,ulSpeed等保存的价值
/// 这种方法应该是只在NetworkMonitor要求,每一次第二。
/// </summary>
internal void refresh()
{
this.dlValue = this.dlCounter.NextSample().RawValue;
this.ulValue = this.ulCounter.NextSample().RawValue; // 计算上传和下载速度。
this.dlSpeed = this.dlValue - this.dlValueOld;
this.ulSpeed = this.ulValue - this.ulValueOld; this.dlValueOld = this.dlValue;
this.ulValueOld = this.ulValue;
} /// <summary>
/// 覆盖方法返回的适配器的名称。
/// </summary>
/// <returns>该适配器的名称。</returns>
public override string ToString()
{
return this.name;
} /// <summary>
/// 该网络适配器的名称。
/// </summary>
public string Name
{
get
{
return this.name;
}
}
/// <summary>
/// 当前下载速度每秒字节。
/// </summary>
public long DownloadSpeed
{
get
{
return this.dlSpeed;
}
}
/// <summary>
/// 当前上传速度在每秒字节。
/// </summary>
public long UploadSpeed
{
get
{
return this.ulSpeed;
}
}
/// <summary>
/// 目前的下载速度在每秒字节。
/// </summary>
public double DownloadSpeedKbps
{
get
{
return this.dlSpeed/1024.0;
}
}
/// <summary>
/// 当前上传速度在每秒字节。
/// </summary>
public double UploadSpeedKbps
{
get
{
return this.ulSpeed/1024.0;
}
}
}至于启动服务,或者关闭服务就更简单了,使用System.ServiceProcess.ServiceController对象操作即可。
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式