0

関連するすべての http 呼び出しを行う必要がある sdk ラッパーを構築しようとしていますが、開発者がそれを使用するために複雑さを取り除くため、通常のオブジェクトを返す関数を構築しようとしていますが、その関数呼び出しと非同期が必要で、httpclient または webclient で待機しますが、これを行う方法がわかりませんか?

私が見ることができるのは、良くない void 関数を持つこと、または Task または Task を持つことですが、それも良くありません。

ユーザーに関数を通常どおりに定義してもらいたい

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

これは不可能ですか?.Result を使用すると、呼び出しが同期呼び出しに変わり、良くないと思います。

提案や解決策はありますか?多分私はこれを間違った方法で見ていますか?

4

1 に答える 1

3

ユーザーに関数を通常どおりに定義してもらいたいと思います。つまり、 MyClss myobject = company.sdk.RequestData("http://...."); です。

「普通」の定義が変わりつつあります。New World では、非同期メソッドが非同期的に (つまり を介して) 呼び出されるのが普通awaitです。

あなたが今言ったことは、ユーザーが非同期メソッドを同期的に呼び出せるようにしたいということです。それは異常です。

Simon がコメントしたように、正しい解決策は、非同期メソッドに非同期 API を提供することです。TAPに従ってください。すべての .NET 開発者は遅かれ早かれそれを学ぶ必要があります。

于 2013-10-15T04:02:17.183 に答える