首页 > 其他分享 >yield流式处理

yield流式处理

时间:2023-02-01 00:11:40浏览次数:33  
标签:Task return 处理 YYY 流式 item static yield

yield流式处理

1、每到一次return都会出来打印一次,源代码也是根据return个数分成若干状态机,适用于把大数据切割成小数据依次返回

        static async Task Main(string[] args)
        {
            foreach (var item in YYY())
            {
                Console.WriteLine(item);
            }
        }
        


        static IEnumerable<int> YYY()
        {
            yield return 1;
            yield return 2;
            yield return 3;
        }


//控制台输出1、2、3,就不展示了

2、但是异步方法也是分成状态机,所以这两个魔法碰到魔法了,自然就不行报错了

微软也是没办法,所以搞了一个新的语法:返回值声明为IAsyncEnumerable,不带Task,遍历的时候加上await

        static async Task Main(string[] args)
        {
            //遍历加上await
            await foreach (var item in YYY())
            {
                Console.WriteLine(item);
            }
        }

			  //返回值声明为IAsyncEnumerable,不带Task
        static async IAsyncEnumerable<int> YYY()
        {
            yield return 1;
            yield return 2;
            yield return 3;
        }

//如何控制台又可以输出1、2、3了

标签:Task,return,处理,YYY,流式,item,static,yield
From: https://www.cnblogs.com/long-live/p/yield.html

相关文章