我在c#windows窗体(fw4.0)中有一个应用程序,我有一个创建json字符串的方法,并通过post发送到网页中的action方法。我不知道需要多少,但我想在方法执行时显示进度条。我该怎么做? 我有一个想法是在方法运行时执行计数器并将其显示给用户,但我不知道如何...它必须在另一个线程中?如何?
我没有更多有用的信息提供..我希望你能帮助我! 谢谢!
答案 0 :(得分:1)
Use the background worker以阻止阻止用户界面并报告进度。
答案 1 :(得分:0)
您可以根据两个值报告进度:
prob_time - 行动完成所需的最可能时间;
max_time - 您在考虑操作失败之前愿意等待的最长时间;
您可以使进度条在prob_time中达到某个点(例如80%),然后在(max_time-prob_time)中达到100%。
如果操作比max_time更快地完成,则将进度跳转到100%并报告“成功”,否则报告“失败”
答案 2 :(得分:0)
最后我做到了! 我必须使用2名背景工人..这就是我所做的.. backgroundWorker1:执行post方法。 backgroundWorker2:执行TimeSpan计数器。 当backgroundWorker2启动时,将TimeSpan设置为0并且在DoWork中,如果backgroundWorker1 CancellationPending为false,则我在backgroundWorker2中报告进度。 当post方法完成后,我将backgroundWorker1设置为CancelAsync,因此backgroundWorker2将终止。 我认为这是我最好的解决方案。