线程和异步编程使应用能够以异步方式在并行线程中完成工作。
应用可以使用线程池以异步方式在并行线程中完成工作。 线程池管理一组线程,并使用队列在线程可用时将工作项分配给线程。 线程池类似于 Windows 运行时中可用的异步编程模式,因为它可用于完成扩展工作而不阻止 UI,但线程池提供比异步编程模式更多的控制,并且你可以使用它并行完成多个工作项。 可以使用线程池来:
提交工作项、控制其优先级和取消工作项。
使用计时器和定期计时器计划工作项。
为关键工作项预留资源。
运行工作项以响应命名事件和信号灯。
线程池在管理线程时效率更高,因为它减少了创建和销毁线程的开销。 这意味着它有权跨多个 CPU 核心优化线程,并且可以在应用之间以及后台任务运行时平衡线程资源。 使用内置线程池很方便,因为你专注于编写完成任务的代码,而不是线程管理的机制。
主题 | DESCRIPTION |
---|---|
异步编程 (UWP 应用) | 本主题介绍通用 Windows 平台(UWP)中的异步编程及其在 C#、Microsoft Visual Basic .NET、Visual C++ 组件扩展(C++/CX)和 JavaScript 中的表示形式。 |
C++/CX 中的异步编程(UWP 应用) | 本文描述了如何通过使用 ppltasks.h 文件中task 命名空间定义的concurrency 类,在 C++/CX 中建议使用异步方法的方式。 |
使用线程池 的最佳做法 | 本主题介绍使用线程池的最佳做法。 |
在 C# 或 Visual Basic 中调用异步 API | 通用 Windows 平台(UWP)包含许多异步 API,以确保应用在完成可能需要较长时间的工作时保持响应。 本主题讨论如何在 C# 或 Microsoft Visual Basic 中使用 UWP 中的异步方法。 |
创建定期工作项 | 了解如何创建定期重复的工作项。 |
将工作项提交到线程池 | 通过将工作项提交到线程池中,来学习如何在单独的线程中执行工作。 |
使用计时器提交工作项 | 了解如何创建一个在计时器结束后执行的工作项。 |