タグ付けされた質問 「iasyncenumerable」

9
「yield return DoSomethingAsync()」を待つことは可能ですか?
通常のイテレーターブロック(つまり、 "yield return")は、 "async"および "await"と互換性がありませんか? これは私が何をしようとしているのかについての良い考えを与えます: async Task<IEnumerable<Foo>> Method(String [] Strs) { // I want to compose the single result to the final result, so I use the SelectMany var finalResult = UrlStrings.SelectMany(link => //i have an Urlstring Collection await UrlString.DownLoadHtmlAsync() //download single result; DownLoadHtmlAsync method will Download the url's …

2
空のIAsyncEnumerableを作成する
私はこのように書かれたインターフェースを持っています: public interface IItemRetriever { public IAsyncEnumerable<string> GetItemsAsync(); } 次のように、アイテムを返さない空の実装を記述したいと思います。 public class EmptyItemRetriever : IItemRetriever { public IAsyncEnumerable<string> GetItemsAsync() { // What do I put here if nothing is to be done? } } それが単純なIEnumerableである場合、私は return Enumerable.Empty<string>();、私はそうしますが、何も見つかりませんでしたAsyncEnumerable.Empty<string>()。 回避策 私はこれがうまくいくのを見つけましたが、かなり奇妙です: public async IAsyncEnumerable<string> GetItemsAsync() { await Task.CompletedTask; yield break; } 何か案が?

1
IAsyncEnumerableをリストに変換
したがって、C#8ではIAsyncEnumerableインターフェイスが追加されました。 普通のものがあれば、それから欲しい他のコレクションをIEnumerable作ることができListます。そこでLinqに感謝します。 var range = Enumerable.Range(0, 100); var list = range.ToList(); さて、私は自分IAsyncEnumerableをaに、Listそしてもちろんこれを非同期に変換したいと思います。その場合のLinq実装はすでにありますか?ない場合、どうすれば自分で変換できますか?

1
IAsyncEnumerableがASP.NET Web APIでどのように機能するかについての説明
ASP.NET Web APIプロジェクトでIAsyncEnumerableを探索しているときに、興味深い動作が発生しました。次のコードサンプルを検討してください。 // Code Sample 1 [HttpGet] public async IAsyncEnumerable<int> GetAsync() { for (int i = 0; i < 10; i++) { await Task.Delay(1000); yield return i; } } // Code Sample 2 [HttpGet] public async IAsyncEnumerable<string> GetAsync() { for (int i = 0; i < 10; i++) { …

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.