我有一个非常简单的任务,加载一些数据,如下所示:
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/