0

我正在尝试构建一个 sdk 包装器,它将进行所有需要进行的相关 http 调用,但为使用它的开发人员消除复杂性,所以我试图构建一个返回常规对象的函数,但在该功能我想要调用和异步并等待 httpclient 或 webclient 但我不知道该怎么做?

我所能看到的只是有一个不好的 void 函数,或者有一个 Task 或 Task 但那也不好。

我希望用户将功能定义为正常,即

 MyClss myobject = company.sdk.RequestData("http://....");

这不可能吗?我相信,如果您使用 .Result,它会将调用变成不好的同步调用。

有什么建议或解决方案吗?也许我看错了?

4

1 回答 1

3

我希望用户将函数定义为正常,即 MyClss myobject = company.sdk.RequestData("http://....");

“正常”的定义正在发生变化。在新世界中,异步方法被异步调用(即通过)是正常的。await

你刚才说的是你希望用户能够同步调用你的异步方法。那是不正常的。

正如 Simon 评论的那样,正确的解决方案是为异步方法提供异步 API。只需按照TAP 即可;所有 .NET 开发人员迟早都需要学习它。

于 2013-10-15T04:02:17.183 回答