Progress<T>
類型在 C# 中用于報告異步操作的進度。這個類型是跨平臺的,可以在 .NET Core、.NET Framework 和 Xamarin 等平臺上使用。Progress<T>
類型位于 System.Threading.Tasks
命名空間中,因此你需要引用此命名空間才能使用它。
下面是一個簡單的示例,展示了如何在 C# 中使用 Progress<T>
類型來報告異步操作的進度:
using System;
using System.Threading;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// 創建一個 Progress<int> 實例,用于報告進度
var progress = new Progress<int>(percent => Console.WriteLine($"Progress: {percent}%"));
// 調用異步方法,并傳入 Progress<int> 實例
await DoWorkAsync(progress);
}
static async Task DoWorkAsync(IProgress<int> progress)
{
for (int i = 0; i <= 100; i += 10)
{
// 模擬耗時操作
await Task.Delay(500);
// 更新進度
progress.Report(i);
}
}
}
在這個示例中,我們創建了一個 Progress<int>
實例,并將其傳遞給 DoWorkAsync
方法。DoWorkAsync
方法模擬了一個耗時操作,并在每次迭代時更新進度。當進度發生變化時,Progress<T>
實例會觸發一個事件,我們可以通過注冊一個回調函數來處理這個事件。在這個例子中,我們只是簡單地將進度百分比輸出到控制臺。
Progress<T>
類型非常適合用于跨平臺應用程序,因為它提供了一種簡單、一致的方式來報告異步操作的進度。無論你使用的是 .NET Core、.NET Framework 還是 Xamarin,都可以使用相同的代碼來實現進度報告功能。