1

我像那样删除文件。并且需要知道何时更新 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());
  }
}
4

2 回答 2

2

而不是调用Wait,您应该使用延续:

fi.DeleteAsync().ContinueWith(t => { /* update ui here */ }, TaskScheduler.FromCurrentSynchronizationContext());

使用TaskScheduler.FromCurrentSyncronizationContext()确保延续在 UI 线程上运行。

于 2013-04-17T15:15:53.643 回答
1

删除后fi.DeleteAsync().Wait();

您可以检查该文件是否不存在,if(!fi.exists)然后更新您的 UI。

于 2013-04-17T15:08:45.070 回答