gpt4 book ai didi

C# - API 是否应该有 "async"修饰符?

转载 作者:太空宇宙 更新时间:2023-11-03 18:56:22 26 4
gpt4 key购买 nike

我一直在搜索和搜索,但无法在 .NET 库和框架中找到任何带有“async”修饰符且被视为 API 的方法。

我已经看到它在他们的代码中被使用,但它并没有被“暴露”。

然后我想到了另一个问题,我们应该公开“异步 API 方法”,还是只将 API 公开为任务。我认为答案是后者,但也许有人可以向我展示一个不是的情况。

我也不记得是在哪里读到的,但我确定我是在什么地方读到的。

最佳答案

async是一个实现细节。

方法的签名只是一个返回Task的方法。或 Task<T> .

所有这些async所做的是更改您可以方法中编写的 C# 变体。它对调用代码完全不可见。

这就是为什么您不允许声明async的原因在接口(interface)成员上——它是一个实现细节,而接口(interface)没有实现,这没有意义。

因此,您在 re: API 中做出的决定是您希望您的方法返回的内容。如果是 TaskTask<T>完全由您决定是否实现该方法 async或不,您稍后可以自由更改该决定(稍后添加 async 不会更改方法签名 - 这不是重大更改)


对于其他 API 考虑因素,您可能希望引用 Stephen Toub 的两篇文章 Should I expose asynchronous wrappers for synchronous methods?Should I expose synchronous wrappers for asynchronous methods? .对两者的简短回答是否定的。

关于C# - API 是否应该有 "async"修饰符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44298844/

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