soh*_*ham 3 .net c# ip networking
该特定领域的回报是什么?我想要每秒接收的字节数.我应该依靠这个吗?
我想你可以这样使用它:
long beginValue = NetworkInterface.GetIPv4Statistics().BytesReceived;
DateTime beginTime = DateTime.Now;
// do something
long endValue = NetworkInterface.GetIPv4Statistics().BytesReceived;
DateTime endTime = DateTime.Now;
long recievedBytes = endValue - beginValue;
double totalSeconds = (endTime - beginTime).TotalSeconds;
var bytesPerSecond = recievedBytes / totalSeconds;
Run Code Online (Sandbox Code Playgroud)
用于定期更新的代码段
private object _lockObj;
private long bytesPerSecond = 0;
private Timer _refreshTimer = new Timer { Interval = 1000 };
// do in ctor or some init method
_refreshTimer.Tick += _refreshTimer_Tick;
_refreshTimer.Enabled = true;
private void _refreshTimer_Tick(object sender, EventArgs e)
{
ThreadPool.QueueUserItem(callback =>
{
long beginValue = NetworkInterface.GetIPv4Statistics().BytesReceived;
DateTime beginTime = DateTime.Now;
Thread.Sleep(1000);
long endValue = NetworkInterface.GetIPv4Statistics().BytesReceived;
DateTime endTime = DateTime.Now;
long recievedBytes = endValue - beginValue;
double totalSeconds = (endTime - beginTime).TotalSeconds;
lock(_lockObj)
{
bytesPerSecond = recievedBytes / totalSeconds;
}
});
}
Run Code Online (Sandbox Code Playgroud)
您可以将此与一些跟踪相结合,以记录随时间变化的接收字节
| 归档时间: |
|
| 查看次数: |
6505 次 |
| 最近记录: |