码迷,mamicode.com
首页 > 编程语言 > 详细

转换 Task<IAsyncEnumerable<T>> 为 IAsyncEnumerable<T>

时间:2020-04-11 13:16:45      阅读:66      评论:0      收藏:0      [点我收藏+]

标签:highlight   return   bsp   sharp   ati   false   his   ret   div   

这么做还是有一些意义的,避免重复处理Task<IAsyncEnumerable>实在是有些复杂,如果代码还要处理IAsyncEnumerable的话尤为如此,将二者统一还是有一定意义的

        #region AsAsyncEnumerable
        public static async IAsyncEnumerable<T> AsAsyncEnumerable<T>(this System.Threading.Tasks.ValueTask<IAsyncEnumerable<T>> asyncEnumerable)
        {
            await foreach (var one in await asyncEnumerable.ConfigureAwait(false))
            {
                yield return one;
            }
        }
        public static async IAsyncEnumerable<T> AsAsyncEnumerable<T>(this System.Threading.Tasks.ValueTask<IEnumerable<T>> asyncEnumerable)
        {
            foreach (var one in await asyncEnumerable.ConfigureAwait(false))
            {
                yield return one;
            }
        }
        public static async IAsyncEnumerable<T> AsAsyncEnumerable<T>(this System.Threading.Tasks.Task<IEnumerable<T>> asyncEnumerable)
        {
            foreach (var one in await asyncEnumerable.ConfigureAwait(false))
            {
                yield return one;
            }
        }
        public static async IAsyncEnumerable<T> AsAsyncEnumerable<T>(this System.Threading.Tasks.Task<IAsyncEnumerable<T>> asyncEnumerable)
        {
            await foreach(var one in await asyncEnumerable.ConfigureAwait(false))
            {
                yield return one;
            }
        }
        #endregion

 

转换 Task<IAsyncEnumerable<T>> 为 IAsyncEnumerable<T>

标签:highlight   return   bsp   sharp   ati   false   his   ret   div   

原文地址:https://www.cnblogs.com/yinyue200/p/12678740.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!