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


    这么做还是有一些意义的,避免重复处理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
    
  • 相关阅读:
    【C++】基础及引用
    gradle打包分编译环境
    gradle
    MediaPlayer滑动不准的问题
    python初步入门
    音频播放服务
    《深入理解Android2》读书笔记(二)
    缓存(LruCache)机制
    handler机制
    监听网络状态
  • 原文地址:https://www.cnblogs.com/yinyue200/p/12678740.html
Copyright © 2020-2023  润新知