System.Progress

作者:追风剑情 发布于:2024-1-22 15:36 分类:C#

[官方文档] Progress<T> 类

在上下文(SynchronizationContext)中调用进度报告事件。即内部调用的是 m_synchronizationContext.Post() 方法。

using System;
using System.Threading.Tasks;

namespace ConsoleApp11
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Progress<int> progress = new Progress<int>((value) => {
                Console.WriteLine("进度 {0}", value);
            });

            Task<int> task = Calculate(progress);
            int sum = task.Result;
            Console.WriteLine("sum={0}", sum);

            Console.ReadKey();
        }

        public static async Task<int> Calculate(IProgress<int> progress)
        {
            int sum = 0;
            for(int i=0; i< 10; i++)
            {
                await Task.Delay(1000);
                sum += i;
                progress.Report(i);
            }
            return sum;
        }
    }
}

运行测试

1111111.png


标签: C#

Powered by emlog  蜀ICP备18021003号-1   sitemap

川公网安备 51019002001593号