在WPF中执行异步任务的推荐方法是什么?

是否有任何标准工具或推荐的异步任务执行方法?

UPD我明白了,如何使用线程。 我只需要知道在执行异步调用时阻止UI的推荐WPF方式,以及如何更新进度信息。

您可以使用多种方式,例如:

  • 线程池
  • 背景工人
  • 普通老线程

从.NET 4开始,首选方法是使用Tasks

看一下下面的post,它描述了一种创建异步委托命令的方法(使用BackgroundWorker )。 我在我们的应用程序中使用了这种命令,它工作正常,同时它提供了一种一致的异步操作方式。

WPF MVVM应用程序的异步委托命令 – AsyncDelegateCommand http://amazedsaint.blogspot.com/2010/10/asynchronous-delegate-command-for-your.html

这里还提到了类似的实现 – 异步WPF命令

取决于你想要做什么异步。 例如,调用WCF服务我将使用内置方式,使用完成模式为您进行编组。 正常后台工作我使用BackgroundWorker,因为您再次无需担心编组。

除标准线程外。 要使用的一件事是许多类的异步方法,它们可以做到这一点。 这包括Web服务请求,文件读/写操作。

值得一看的是Coroutines,主要由Caliburn.Micro使用 。 但它不是标准的做法。

.NET 4还添加了Task类和ParallelExtensions,它可以更容易地进行异步编程。 但它仍然笨拙,所以.NET 5增加了异步编程模型,使thigs更容易。 但上帝知道什么时候会被释放。