【发布时间】:2012-02-19 14:25:38
【问题描述】:
我的问题主要是关于代码优化(目前) 我创建了一个网络监视器来监视 PC 上的不同连接,我所做的是我在堆栈的第 3 级(网络级别)嗅探数据包,在捕获数据包后,我应该在每个连接的 UI,我目前正在做的是查看程序运行时每秒发送的总消耗带宽和总数据。这是那部分代码:
temp= packet_rtxt.TextLength;
tempdr = temp / 1024;
dr_txt.Text=tempdr.ToString();
totaldata = totaldata + temp;
totaldatadisp = totaldata;
packet_rtxt.Text = "";
//unit
if (totaldata < 10485760)
{
if (totaldata < 10240)
unit.Text = "bytes";
else
{
totaldatadisp = totaldatadisp / 1024;
unit.Text = "KBs";
}
}
else
{
totaldata = totaldatadisp / 1048576;
unit.Text = "MBs";
}
test.Text = totaldatadisp.ToString();
tds.Enabled = true;
}
到目前为止,我所做的是将捕获的数据包写入富文本框中,获取该 rtxt 的长度并将其添加到总数据的计数器中,获取长度并将其用作数据速率,然后清除 rtxt 以获取下一位数据。 接收到的总数据部分工作正常,但是 BPs 部分对于少量数据工作正常,如果数据速率超过 10kbps(在我的电脑上),它就会变得疯狂 我应该尝试优化整个代码,还是有其他方法(请记住,我需要监控每个连接),还是我需要使用不同的 UI 控件? 我应该专注于优化还是使用新方法?
提前致谢
【问题讨论】:
-
你在使用多线程吗?是 WPF 应用程序还是 WinForms?
标签: c# refactoring optimization bandwidth-throttling