我正在编写一个程序,它只做一件事,它会找出 wifi 连接的当前链接速度并将其实时报告给用户。我遇到的问题是它似乎无法找出当前的链接速度,只能找出设备的最大链接速度(300 Mbps)。我写这篇文章的原因是我有一个问题,链接速度会周期性地急剧下降(下降到 1-2 Mbps),我希望能够看到这种情况何时发生。使用此代码,它只会给我适配器支持的最大速度,而不是连接的当前链接速度。
private void update(object state)
{
System.Net.NetworkInformation.NetworkInterface[] nics = null;
nics = System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces();
long speed = 0;
string adapter = "";
foreach (System.Net.NetworkInformation.NetworkInterface net in nics)
{
if (net.Name.Contains("Wireless") || net.Name.Contains("WiFi") || net.Name.Contains("802.11") || net.Name.Contains("Wi-Fi"))
{
speed = net.Speed;
adapter = net.Name;
break;
}
}
string temp;
if (speed == 0)
{
temp = "There is currently no Wi-Fi connection";
}
else
{
temp = "Current Wi-Fi Speed: " + (speed / 1000000) + "Mbps on " + adapter;
}
if (label1.InvokeRequired)
{
SetTextCallback d = new SetTextCallback(update);
label1.Invoke(d, new object[] { temp });
}
else
{
label1.Text = temp;
}
}
这通过调用运行
System.Threading.Timer ticker = new System.Threading.Timer(update, label1, 0, 1000);
在主要方法中。