【发布时间】:2011-03-11 02:16:13
【问题描述】:
我想制作一个进度条来跟踪我正在执行的每个事件的状态,而不是一个静默程序或带有控制台的程序。
事件:
- 读取/解析文件
- 读取 Excel 文件
- 数据库 查询
等等……
现在,在我完成其中一项任务后,我会增加进度条以指示它已完成,并且我向 DataGridTable 写入状态已从“正在计算...”更改为“完成”。
为简单起见,假设我有一个文件 compute.cs 和 form.cs。我的表单启动,然后按“执行”运行 compute.cs 脚本,该脚本通过以下方式将其状态传递回表单:
compute.cs
form.SetStatus(eventId, eventStatus);
form.cs
delegate void SetMetricStatusDelegate(string metric, string status);
public void SetMetricStatus(string metric, string status) { ... }
最后,问题。我运行我的程序,每个任务大约需要三秒钟才能完成,但进度条和表格没有更新。所有事件完成后,进度条和表格就会正确更新。
在 C# 表单上使用进度条记录进度的正确方法是什么?
【问题讨论】:
标签: c# winforms asynchronous progress-bar