我有一个函数可以对可能存在或不存在的数据运行SQL查询。由于我需要不断运行此函数,直到它返回正确的值,如何在循环结束之前运行进度条。
status = Logic.ProcessResource(currentInstance)
While status.woID.Count <= 0
status = Logic.ProcessResource(currentInstance)
End While
如何运行此操作并显示另一个带有进度条的表单,直到循环退出?
答案 0 :(得分:1)
我的评论作为答案......
将该代码放入另一个线程,然后在“Marquee”模式下使用ProgressBar来指示正在进行的操作,但没有已知的结束时间。
是的......但你仍然需要将查询/循环放在另一个线程中......否则主UI线程将忙于动画并保持对用户的响应。
使用Async / Await查看BackgroundWorker控件或使用Task。
您将显示表单,启动工作程序,等待工作人员完成,然后关闭表单。 BackgroundWorker()具有UI友好事件,如RunWorkerCompleted,它们已经为您封送到UI线程。