溫馨提示×

C# Promise如何實現進度報告

c#
小樊
116
2024-07-22 21:41:03
欄目: 編程語言

在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>是一個泛型接口,可以根據需要自定義報告進度的數據類型。

0
亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女