来自其他表单的循环的进度条值?

时间:2009-09-24 14:52:32

标签: c# progress-bar

我想为我的应用程序创建一个进度条,即时运行我有一个主窗体打开一个带有数据网格的子窗体,循环i <30。循环在查询数据库时需要一些时间。

对于用户而言,这样的保持就像软件卡住一样,所以我想创建一个进度条来显示操作在循环中的持续时间。

我需要什么才能开始解决这个问题?

form1 =主要表格 Child1 = datagrid表单 Child2 =进度条表单

我正在考虑让主窗体保存一个int变量poX = 0 而child1在循环中执行

for (int i, i < 30, i++)
{
   //code for query
   form1.posX = form1.posX++
}

然后让Child2使用poX来推进吧。 但这是正确的道路吗?以及如何将值从子项传递到主窗体并返回?

1 个答案:

答案 0 :(得分:2)

您需要做的是在更新进度条时使用不同的线程执行冗长的操作。这不会冻结您的UI线程。查看BackgroundWorker课程和How To Use BackgroundWorker