小编C.U*_*ser的帖子

C# WinForms 尝试使用计时器更新 UI,但不会降低性能

所以目前我有一个有 2 个进程的应用程序。一个进程正在执行 ping 操作,而 ping 进程则将结果写入数组。

另一个过程是使用计时器每秒更新 UI。更准确地说,更新的是一个 mschart。

这就是我设置计时器的方式:

readonly System.Windows.Forms.Timer myTimer = new System.Windows.Forms.Timer();
myTimer.Interval = 1000;
myTimer.Tick += WriteFunction;
Run Code Online (Sandbox Code Playgroud)

现在,这是我每秒调用的用于刷新 UI/实际图表的方法:

 private void WriteFunction(object objectInfo, EventArgs e)
        {
            foreach (NetPinger.source.AddGraph b in graphList)
            {
                b.fileRead();
            }
        }
Run Code Online (Sandbox Code Playgroud)

用于更新图表的方法位于另一个类中,如下所示:

    public void fileRead()
    {
        double unixTimestamp = (Int32)(DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1))).TotalSeconds;

        chart_holder.Series[0].Points.Clear();

        for (double i = unixTimestamp; unixTimestamp - graphSizing < i; i--)
        {
            bool exists;
            try
            {
                exists = Array.Exists(file, element => element.XValue == i);
                exists = …
Run Code Online (Sandbox Code Playgroud)

c# multithreading timer mschart winforms

1
推荐指数
1
解决办法
2479
查看次数

C#如何"删除"数组的第一个值,重新排序数组并将最后一个值设置为0?

所以我有一个Datapoint[] = new Datapoint[50]我正在填补的.一旦Datapoint数组满了,我怎么能"删除"Datapoint [0]并将Datapoint [1]设置为Datapoint [0],Datapoint [2]设置为Datapoint [1] ...等并使Datapoint [49] ]再次释放/值为0/0?
因为我不想使用循环,所以我没有取得任何成功.

感谢帮助!

c# arrays winforms datapoint

-2
推荐指数
1
解决办法
81
查看次数

标签 统计

c# ×2

winforms ×2

arrays ×1

datapoint ×1

mschart ×1

multithreading ×1

timer ×1