Answers:
在async
和await
关键字不会让你的应用程序对自己的反应更灵敏。它们仅使返回Task
对象的方法的调用和处理更加方便。为了使async
/ await
实际使用后台线程,您将需要结合使用以下内容:
Task.Start()
-使用开始指定的任务TaskScheduler
。TaskCompletionSource
-处理异步任务的自定义方式。我使用它的一个地方是处理来自WebBrowser
控件的事件。async
方法,例如Win 8 API中的许多功能。换句话说,async
/ await
是基于任务的异步模式的扩展。您可以在此处找到大量信息,包括许多示例。
这BackgroundWorker
是一个WinForms组件,它使用基于事件的异步模式创建1个后台线程,并且您可以在DoWork
事件处理程序中使用自己的代码填充在此后台线程上完成的工作。通常,Microsoft不再建议使用此模式(请参阅此处的页面底部),尽管如果您已经熟悉它,它仍然可能是一个简单的选择。
未提及的另一个选择是.NET的Reactive Extensions。这是另一个为应用程序添加响应能力的出色框架。
BackgroundWorker
特别推荐的内容。