【问题标题】:What is recommended way to perform async tasks in WPF?在 WPF 中执行异步任务的推荐方法是什么?
【发布时间】:2011-02-18 07:14:31
【问题描述】:

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

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

【问题讨论】:

    标签: c# .net wpf asynchronous


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      看看下面的帖子,它描述了一种创建异步委托命令的方法(使用BackgroundWorker)。我在我们的应用程序中使用过这种命令,它运行良好,同时它提供了一种一致的异步处理方式。

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

      这里也提到了一个类似的实现—— Asynchronous WPF Commands

      【讨论】:

        【解决方案3】:

        取决于您尝试异步执行的操作。 例如调用 WCF 服务我会使用内置方式,使用 Completed 模式为您进行编组。 正常的后台工作我会使用 BackgroundWorker,因为您无需担心编组。

        【讨论】:

          【解决方案4】:

          除了标准螺纹。要使用的一件事是许多类的异步方法,可以做到这一点。这包括网络服务请求、文件读/写操作。

          值得一看的是协程,主要由 Caliburn.Micro 使用。但这不是标准的方法。

          .NET 4 还添加了 Task 类和 ParallelExtensions,它能够更轻松地进行一些异步编程。但它仍然很笨拙,因此 .NET 5 添加了异步编程模型,使事情变得更加容易。但是天知道什么时候发布。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2012-02-04
            • 2016-06-13
            • 2016-11-10
            • 1970-01-01
            • 2011-07-24
            • 2013-01-07
            • 1970-01-01
            • 2015-11-12
            相关资源
            最近更新 更多