ync/等待和背景工作者:了解差异
>> c#'s async
/await
和BackgroundWorker
两个都处理背景任务以保持UIS响应。 但是,它们的方法和最佳用途场景有很大差异。 选择合适的工具取决于任务的性质和您的编码样式。
背景工作者:专用的背景任务处理程序
在单独的线程中执行单个,长期运行的操作时, BackgroundWorker
擅长执行。 这是需要通过其ProgressChanged
事件到主UI线程进行进度更新并提供取消任务的能力的场景的理想选择。
异步/等待:优雅的异步编程
通过允许您以顺序编写异步操作来简化异步代码, Async
/await
简化了异步代码。 它本质上不会创建新线程;取而代之的是,它利用异步编程模式(例如基于任务的异步模式)(TAP)等异步编程模式。 这使得它更加清洁,更可读,适用于许多异步任务。
>典型的用例:
>背景工作者最适合:
>>有异步图案(如Tap)可用的情况。
方案涉及多个并发异步操作,维护执行顺序。async
做出正确的选择:await
等待:
>异步编程模式很容易适用于任务。>
您需要暂停执行并等待多个同步操作。>您正在处理一项长期运行的任务,不想使用异步模式。 UI的进度更新至关重要。
>以上是异步/等待与背景工作者:我什么时候应该将其用于背景任务?的详细内容。更多信息请关注PHP中文网其他相关文章!