【发布时间】:2013-09-06 01:44:08
【问题描述】:
我有几个嵌套的 for 循环,我想知道是否可以在它处理数据的同时获取数据,所以我可以将它作为加载栏显示在屏幕上。
这是一个例子:
double currentData;
double endData = 50 * 50 * 50;
for(int i = 0; i < 50; i++)
{
for(int e = 0; e < 50; e++)
{
for(int a = 0; a < 50; a++)
{
currentData = a * e * i;
}
}
}
label1.Text = "Loading: " + Convert.ToString(100/endData * currentData) + "%.";
如果我没记错的话,for 循环会使程序“冻结”直到它完成,所以这可能就是这段代码不起作用的原因。有什么建议吗?
谢谢
【问题讨论】:
-
for(int a : 0; a < 50; a++)是错字吗? -
糟糕,改了,谢谢
-
您可以将
label1.Text =行放在循环中,并在其后直接调用Application.DoEvents。或者查找BackgroundWorker并使用它在后台线程中完成工作。
标签: c# winforms for-loop loading