gpt4 book ai didi

.net - IAsyncResult 模式的优势是什么?

转载 作者:行者123 更新时间:2023-12-01 13:32:32 25 4
gpt4 key购买 nike

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引起辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the help center为指导。




9年前关闭。




我觉得如果它们是事件驱动的,许多类(例如 TcpClientUdpClientHttpListener )会更容易理解和使用。和 IAsyncResult模式太难实现了,因为它让你接触到各种奇怪的用例:

  • 如果调用者连续调用多个 Begin 方法会怎样?
  • 如果调用者混合使用 Begin 和常规方法会怎样?

  • 等等。尽管如此,微软还是选择在大多数地方使用它。为什么?

    编辑:请集中讨论 .NET 2.0,因为这是我必须使用的。

    最佳答案

    And so on. Nevertheless, Microsoft has chosen to use it in most places. Why?



    使用 IAsyncResult 的异步模式是框架中使用的原始异步编程模式。它几乎没有什么优势,而且随着时间的推移,它的复杂性导致新的模式被开发出来。

    稍后介绍了事件异步编程 (EAP)(您有一个带有完成事件的“开始”方法)。这解决了很多复杂性,但在许多情况下仍然难以使用,因为您仍然必须将逻辑拆分为多个方法。

    但是,当前的异步模式基于 .NET 4 的 TaskTask<T>类,并提供巨大的优势,尤其是与 C# 5 的 async/await 支持结合使用时。幸运的是, TaskFactory.FromAsync可用于轻松包装 IAsyncResult基于异步方法对成 Task<T>自动,因此可以使用新模式。 .NET 4.5 添加了许多框架的异步方法的新版本,这些方法返回 Task<T> ,所以新 async/ await语言支持可以与框架方法一起使用。这是所有异步编程的首选方法。

    关于.net - IAsyncResult 模式的优势是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12750532/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com