函数在循环中运行时显示进度条,直到返回值

时间:2015-09-06 00:12:12

标签: vb.net

我有一个函数可以对可能存在或不存在的数据运行SQL查询。由于我需要不断运行此函数,直到它返回正确的值,如何在循环结束之前运行进度条。

status = Logic.ProcessResource(currentInstance)
While status.woID.Count <= 0
     status = Logic.ProcessResource(currentInstance)
End While

如何运行此操作并显示另一个带有进度条的表单,直到循环退出?

1 个答案:

答案 0 :(得分:1)

我的评论作为答案......

将该代码放入另一个线程,然后在“Marquee”模式下使用ProgressBar来指示正在进行的操作,但没有已知的结束时间。

是的......但你仍然需要将查询/循环放在另一个线程中......否则主UI线程将忙于动画并保持对用户的响应。

使用Async / Await查看BackgroundWorker控件或使用Task。

您将显示表单,启动工作程序,等待工作人员完成,然后关闭表单。 BackgroundWorker()具有UI友好事件,如RunWorkerCompleted,它们已经为您封送到UI线程。