对于标签中的循环错误

时间:2015-06-20 01:23:21

标签: c# winforms for-loop label

嗯,很简单,创建一个窗口表单,在其中添加一个按钮和一个标签,并为该按钮提供一个单击事件。

    private void button1_Click(object sender, EventArgs e)
    {
        int xa;
        int ya;
        for (xa = 647; xa < 982; xa++)

            for (ya = 262; ya < 598; ya++)
            {
                label1.Text = xa.ToString() + " " + ya.ToString();
            }
    }

当我点击按钮时,程序只停留了大约20秒。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

您必须将其从UI线程中删除。试试这个:

private void button1_Click(object sender, EventArgs e)
{
    ThreadPool.QueueUserWorkItem(p => doit());            
}

private void doit()
{
    int xa;
    int ya;
    for (xa = 647; xa < 982; xa++)

        for (ya = 262; ya < 598; ya++)
        {
            this.Invoke(new Action(() => { label1.Text = xa.ToString() + " " + ya.ToString(); }));
        }
}