【发布时间】:2011-02-18 07:14:31
【问题描述】:
是否有任何标准工具或推荐的异步任务执行方法?
UPD 我明白了,如何使用线程。我只需要知道在执行异步调用时阻止 UI 的推荐 WPF 方法,以及如何更新进度信息。
【问题讨论】:
标签: c# .net wpf asynchronous
是否有任何标准工具或推荐的异步任务执行方法?
UPD 我明白了,如何使用线程。我只需要知道在执行异步调用时阻止 UI 的推荐 WPF 方法,以及如何更新进度信息。
【问题讨论】:
标签: c# .net wpf asynchronous
【讨论】:
看看下面的帖子,它描述了一种创建异步委托命令的方法(使用BackgroundWorker)。我在我们的应用程序中使用过这种命令,它运行良好,同时它提供了一种一致的异步处理方式。
异步委托命令 您的 WPF MVVM 应用程序 - 异步委托命令 http://amazedsaint.blogspot.com/2010/10/asynchronous-delegate-command-for-your.html
这里也提到了一个类似的实现—— Asynchronous WPF Commands
【讨论】:
取决于您尝试异步执行的操作。 例如调用 WCF 服务我会使用内置方式,使用 Completed 模式为您进行编组。 正常的后台工作我会使用 BackgroundWorker,因为您无需担心编组。
【讨论】:
除了标准螺纹。要使用的一件事是许多类的异步方法,可以做到这一点。这包括网络服务请求、文件读/写操作。
值得一看的是协程,主要由 Caliburn.Micro 使用。但这不是标准的方法。
.NET 4 还添加了 Task 类和 ParallelExtensions,它能够更轻松地进行一些异步编程。但它仍然很笨拙,因此 .NET 5 添加了异步编程模型,使事情变得更加容易。但是天知道什么时候发布。
【讨论】: