在 C# 中實現異步線程的進度報告可以通過以下幾種方法:
Progress<int> progress = new Progress<int>();
progress.ProgressChanged += (sender, value) =>
{
// 處理進度更新
};
await SomeAsyncMethod(progress);
IProgress<int> progress = new Progress<int>();
progress.ProgressChanged += (sender, value) =>
{
// 處理進度更新
};
await SomeAsyncMethod(progress);
public event EventHandler<int> ProgressChanged;
public async Task SomeAsyncMethod()
{
for (int i = 0; i < 100; i++)
{
// 執行一些操作
ProgressChanged?.Invoke(this, i);
}
}
// 在調用 SomeAsyncMethod 的地方訂閱事件
SomeAsyncMethod.ProgressChanged += (sender, value) =>
{
// 處理進度更新
};
無論哪種方法,都可以在異步線程中報告進度,讓調用者能夠實時了解任務的執行進度。