0

我的问题主要是关于代码优化(目前)我创建了一个网络监视器来监视 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 控件?我应该专注于优化还是使用新方法?

提前致谢

4

1 回答 1

0

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

我只会每秒显示最后一次说 10kb 的文本。您仍然可以将所有日志记录保存在某种数据结构中。但是您不必将它们全部推送到 UI。

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

于 2012-02-19T14:34:55.207 回答