代码优化:c#问题中的带宽监控

代码优化:c#问题中的带宽监控,c#,refactoring,optimization,bandwidth-throttling,C#,Refactoring,Optimization,Bandwidth Throttling,我的问题主要是关于代码优化(目前) 我已经创建了一个网络监视器来监视PC上的不同连接,我所做的是在堆栈的第三层(网络层)嗅探数据包,捕获数据包后,我应该在UI上为每个连接创建一个对象,我现在做的是查看程序运行时每秒消耗的总带宽和发送的总数据。以下是该部分代码: temp= packet_rtxt.TextLength; tempdr = temp / 1024; dr_txt.Text=tempdr.ToString(); totaldat

我的问题主要是关于代码优化(目前) 我已经创建了一个网络监视器来监视PC上的不同连接,我所做的是在堆栈的第三层(网络层)嗅探数据包,捕获数据包后,我应该在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;
    }
temp=packet\u rtxt.TextLength;
tempdr=temp/1024;
dr_txt.Text=tempdr.ToString();
totaldata=totaldata+温度;
totaldatadisp=totaldata;
packet_rtxt.Text=“”;
//单位
如果(总数据<10485760)
{
if(总数据<10240)
unit.Text=“字节”;
其他的
{
totaldatadisp=totaldatadisp/1024;
unit.Text=“KBs”;
}
}
其他的
{
totaldata=totaldatadisp/1048576;
unit.Text=“MBs”;
}
test.Text=totaldatadisp.ToString();
tds.Enabled=true;
}
因此,到目前为止,我所做的是将捕获的数据包写入一个富文本框,获取rtxt的长度并将其添加到总数据的计数器中,获取长度并将其用作数据速率,然后清除rtxt以获取下一个数据位。 接收的总数据部分工作正常,但BPs部分在低数据量时工作正常,如果数据速率超过10kbps(在我的电脑上),则会变得疯狂 我应该尝试优化整个代码,还是有其他方法(请记住,我需要监视每个连接),还是需要使用不同的UI控件? 我应该关注优化还是使用新方法


提前感谢

标准控制装置不适用于此类负载。您需要将数据的记录与数据的显示分开

我只会每秒显示最后一个10kb的文本。您仍然可以在某些数据结构中保留所有日志记录。但是你不必把所有的东西都推到UI上


或者,您也可以编写自己的文本显示控件,但这将需要大量的工作。

您是否使用多线程?是WPF应用程序还是WinForms?我只是显示它,以便使用textbox.length函数读取它的大小,我应该将它记录到文件中吗?然后计算那个文件的大小?为什么不把它存储在一个字符串变量中?哇,我从来没有想过,这听起来像是一个非常好的主意。它确实更适合处理器和内存,但我的带宽计算器仍然不能工作