C# Promise如何实现进度报告

   2024-10-06 3780
核心提示:在C#中,可以使用IProgressT接口来实现进度报告。IProgressT接口定义了一个用于报告进度的对象,它包含一个Report方法,可以用来

在C#中,可以使用IProgress<T>接口来实现进度报告。IProgress<T>接口定义了一个用于报告进度的对象,它包含一个Report方法,可以用来通知进度的改变。以下是一个示例代码:

using System;using System.Threading.Tasks;class Program{    static async Task Main(string[] args)    {        var progress = new Progress<int>(report =>        {            Console.WriteLine($"Progress: {report}%");        });        await Task.Run(() =>        {            for (int i = 0; i <= 100; i++)            {                // 模拟耗时操作                System.Threading.Thread.Sleep(100);                                // 报告进度                ((IProgress<int>)progress).Report(i);            }        });    }}

在这段代码中,首先创建了一个Progress<int>对象,用于报告int类型的进度。然后在Task.Run中执行一个耗时操作,并在循环中通过((IProgress<int>)progress).Report(i);来报告进度。

运行以上代码,可以看到每隔100ms打印一次进度信息。

需要注意的是,IProgress<T>是一个泛型接口,可以根据需要自定义报告进度的数据类型。

 
举报打赏
 
更多>同类物流大全
推荐图文
推荐物流大全
点击排行

网站首页  |  关于我们  |  联系方式 | 网站留言    |  赣ICP备2021007278号