首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >长时间运行任务的视觉反馈

长时间运行任务的视觉反馈
EN

Stack Overflow用户
提问于 2013-01-08 22:57:55
回答 1查看 278关注 0票数 0

我有一个长时间运行的for-each循环,我想知道是否有一种惯用的方法来添加一些可视化的用户反馈,这样用户就不会认为应用程序崩溃了。

代码语言:javascript
运行
复制
private void btnRunLongRunningTask_Click(object sender, EventArgs e)
{
    foreach(string path in Directory.EnumerateFiles(@"path"), "*.ext", SearchOption.AllDirectories))
    {
        var result = LongRunning.Task(path);
        string resultPath = Manipulate(path);
        // write result to resultPath
    }
}

这可能会有所帮助:这并不是说任务本身需要很长时间,但可能会有很多这样的任务。

对如何实现这一点有什么建议吗?因为我得到了一个目录作为参数,所以我想我应该查找任务将被执行的次数,然后相应地更新进度条,在后台工作程序中运行任务和更新代码,并注意跨线程访问问题。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-01-08 23:01:34

您可以将工作移动到BackgroundWorker并使用ReportProgress方法。

代码语言:javascript
运行
复制
for (i = 0; i < count; i++)
{
    // do work
    worker.ReportProgress((100 * i) / count);
}

private void MyWorker_ProgressChanged(object sender,
    ProgressChangedEventArgs e)
{
    taskProgressBar.Value = Math.Min(e.ProgressPercentage, 100);
}
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14217742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档