有没有标准工具或建议的方法来执行异步任务?
更新:我明白如何使用线程。我只需要知道在执行异步调用时阻止UI的推荐WPF方式以及如何更新进度信息。
有没有标准工具或建议的方法来执行异步任务?
更新:我明白如何使用线程。我只需要知道在执行异步调用时阻止UI的推荐WPF方式以及如何更新进度信息。
请看下面的帖子,它描述了一种创建异步委托命令(使用BackgroundWorker
)的方法。我在我们的应用程序中使用了这种命令,它运行良好,并且同时提供了一种一致的异步执行方式。
为您的WPF MVVM应用程序创建异步委托命令-AsyncDelegateCommandhttp://amazedsaint.blogspot.com/2010/10/asynchronous-delegate-command-for-your.html
这里也提到了类似的实现-Asynchronous WPF Commands
这取决于您尝试异步执行什么操作。 例如,如果要调用WCF服务,则应使用内置的方式,使用已完成模式,该模式会为您执行编组。 对于普通的后台工作,我会使用BackgroundWorker,因为您不需要担心编组。
除了标准线程之外,还有许多类的异步方法可以使用,包括Web服务请求、文件读写操作等。
其中一个要看的是协同程序,主要由Caliburn.Micro使用。但这不是标准的方法。
此外,.NET 4还添加了Task类和ParallelExtensions,可以更轻松地进行一些异步编程。但它仍然很笨拙,因此.NET 5添加了异步编程模型,使事情变得更加容易。但是谁知道它何时会发布。