TPL 或 async/await 是纯粹的框架结构。如果您管理线程或手动使用异步调用,它们“简单地”使您可以更轻松地完成相同的任务。无需将任何东西与 Azure 存储集成。
TPL 和建立在它之上的 async/await 功能,使用调度程序来安排工作。默认调度程序使用工作窃取技术的4.0 线程池。这意味着您不必担心将工作安排到 ThreadPool。
至于加速流操作,性能提升来自于分解复杂的流操作并创建一个步骤管道。每个步骤都异步执行,可能使用单独的核心或超线程(如果可用)。这允许 IO-bound 操作与 CPU-bound 操作并行运行。
在您的示例中, TransforStream 将块从输入流异步复制到加密器,然后再到压缩器。这允许每个步骤尽可能快地异步执行:输入流继续从磁盘读取,而压缩器和加密器处理内存中的数据。
至于 Windows Azure 存储性能,这些问题并非特定于 TPL。您应该注意,每个分区或 blob 最多可以处理 IO 操作。最好的选择是对数据进行分区,以便您可以将并行请求发送到不同的分区。您将不得不使用不会创建“热”分区的分区方案。虽然分区对于所有 Azure 应用程序都很重要,但使用异步操作意味着为每个 Web 请求执行更多的 IO 请求。
在回答您的问题时,在 Azure 上使用 TPL 与任何其他应用程序没有什么不同。