c# - 使用 Async/Await 时的 WPF ProgressBar 使用情况

标签 c# wpf

我有一个非常简单的任务,加载一些数据,如下所示:

async Task<List<Invoice>> GetInvoices()
{
    var invoices = await Task.Run(() => db.Invoices.AsNoTracking().ToList());
    return invoices;
}

将其与进度条一起使用的最佳方法是什么?我不需要获取加载的百分比(尽管这很有用),我只需要在加载数据的开始和结束时显示/隐藏进度条。有没有办法创建一个完整或完成的方法?

我对异步/等待非常陌生,所以请小心!

最佳答案

假设GetInvoices在某些 UI 事件处理程序中被调用,并且有一些名为 ProgressBar 的进度条控件,这真的很简单:

private async void OnButton1Click(..)
{
    ProgressBar.IsIndeterminate = true;
    var result = await GetInvoices();
    ProgressBar.IsIndeterminate = false; // Maybe hide it, too
    // TODO: Do stuff with result
}

如果您想显示实际进度,请查看 Progress<T> IProgress<T> .

关于c# - 使用 Async/Await 时的 WPF ProgressBar 使用情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26285926/

相关文章:

c# - UserControl 中的 Web 控件是否为空?

C# 并行运行多个非阻塞外部程序

c# - 如何对MainWindow使用UserControl事件

c# - 如何使用c#在word中插入脚注

c# - 使用 WebBrowser.Document.InvokeScript 调用 javascript 对象方法

c# - EntityFramework 类在更新后被删除?

wpf - 用户控件上的焦点和 TabIndex

wpf - 表用户控件不显示

c# - 访问数组时的速度差异

c# - Windows 8 和 Windows Server 2012 抛出错误 ".Net Framework 3.5 is not installed"