我想为我的应用程序创建一个进度条,即时运行我有一个主窗体打开一个带有数据网格的子窗体,循环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来推进吧。 但这是正确的道路吗?以及如何将值从子项传递到主窗体并返回?
答案 0 :(得分:2)
您需要做的是在更新进度条时使用不同的线程执行冗长的操作。这不会冻结您的UI线程。查看BackgroundWorker课程和How To Use BackgroundWorker