[英]Task wrap a synchronisation process isn't awaited
我的应用程序 WPF MVVM 将文件(几乎 10000 个文件)加载到一个文件夹中。 ProgressExplorerValue
是进度条的值。
public async Task ChargeFolderAsync()
{
IsTaskConversionFinish = false;
var rs = await Task.Run(() => LoadEntriesInFolder());
IsTaskConversionFinish = true;
ProgressExplorerValue = 0;
}
public IEnumerable<Record> LoadEntriesInFolder()
{
var rs = new List<Record>();
var di = new DirectoryInfo(InitPath).EnumerateFiles();
double factorPercent = di.Count() == 0 ? 0 : 100d / di.Count();
foreach (var file in di)
{
Record rc = new Record()
{
MetaName = file.Name,
MetaPath = file.FullName
};
rs.Add(rc);
ProgressExplorerValue += factorPercent;
}
return rs;
}
该任务不会在await Task.Run(() => LoadEntriesInFolder());
行await Task.Run(() => LoadEntriesInFolder());
. 当我调试时,它会从这一行跳到下一行,即使LoadEntriesInFolder
方法尚未完成也没有中断。
做的时候await Task.Run(() => LoadEntriesInFolder());
你在等待Run();
的返回值Run();
方法,直到任务完成。
尝试Task.Run(() => LoadEntriesInFolder()).Wait();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.