【发布时间】:2015-09-06 02:21:53
【问题描述】:
嗯,很简单,创建一个窗体,在里面放一个按钮和一个标签,然后给按钮一个点击事件。
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 秒。我该如何解决这个问题?
【问题讨论】:
-
发生这种情况是因为您在 UI 线程上执行了很长的任务。查看
BackgroundWorker、async和StringBuilder作为奖励。 -
你现在的问题是“如果你运行的代码需要一些时间并且重复多次需要很长时间,如何解决它?”您可能想澄清您真正想要实现的目标......
-
我没有看到我输入的按钮是一项很长的任务,它只是一个 300x300 的运行,但我想在这个程序中看到的是 y 在程序运行时立即增加,而不是在它完成时.
-
更新文本框是长时间运行的任务,而不是循环
-
@Tranoze 你真的应该用你想看到的结果来更新你的问题......并运行一些基本的估计 - 即看到 300*300 不同的对,即使你可以在 60FPS 下区分每一帧将需要 300*300/60 = 1500 秒 ...
标签: c# winforms for-loop label