慢速C#图形更新控件

时间:2015-11-11 02:44:36

标签: c# performance graphics

我正在尝试了解如何加快某些图形控件更新。当屏幕上有大量控件时,更新发生得很慢,如下例所示。如何加快速度,以便在计时器中指定50ms更新速率的同时更新所有控件?

using System;
using System.Collections.Generic;
using System.Drawing;
using System.Windows.Forms;
using Timer = System.Windows.Forms.Timer;

namespace FormTestApplication
{
public partial class Form1 : Form
{
    private List<Label> labels = new List<Label>();
    Timer t = new Timer();
    private Boolean flag = false;

    public Form1()
    {
        InitializeComponent();
        for (int j = 0; j < 20; j++)
        {
            for (int i = 0; i < 20; i++)
            {
                Label l = new Label();
                l.Top = j * 30;
                l.Left = i * 25 + 20;
                l.BackColor = Color.Red;
                l.Width = 20;
                labels.Add(l);

            }
        }

        foreach (var label in labels)
        {
            this.Controls.Add(label);
        }

        t.Interval = 50;
        t.Tick += t_Tick;
        t.Start();

    }

    void t_Tick(object sender, EventArgs e)
    {
        foreach (var label in labels)
        {
            if (label.BackColor == Color.Red)
            {
                label.BackColor = Color.Green;
            }
            else
            {
                label.BackColor = Color.Red;
            }
        }
    }

}
}

0 个答案:

没有答案