如何管理IsCompleted值
本文关键字:IsCompleted 管理 何管理 | 更新日期: 2023-09-27 18:09:45
我这样删除文件。并且需要知道何时完成了UI的更新(ListBox
中的文件列表)。
我不知道我该怎么做……我能用fi.DeleteAsync().IsCompleted
值来表示吗?
FileInfo fi = new FileInfo(currentPackage.FullPathFileName);
fi.DeleteAsync().Wait();
// Here I need some code to check when it is done. Any clues?
...
public static class FileExtensions
{
public static Task DeleteAsync(this FileInfo fi)
{
return Task.Factory.StartNew(() => fi.Delete());
}
}
不要调用Wait
,而应该使用延续符:
fi.DeleteAsync().ContinueWith(t => { /* update ui here */ }, TaskScheduler.FromCurrentSynchronizationContext());
使用TaskScheduler.FromCurrentSyncronizationContext()
确保延续在UI线程上运行。
删除后的fi.DeleteAsync().Wait();
你可以检查这个文件是否不存在if(!fi.exists)
然后更新你的UI