namespace DMS.Extensions;
///
/// 任务扩展类,提供异步任务的扩展方法。
///
public static class TaskExtensions
{
///
/// 等待一个没有返回值的 Task 完成,并提供错误处理和完成时的回调。
///
/// 要等待的 Task。
/// 发生异常时的回调函数。
/// 任务成功完成时的回调函数。
public static async Task Await(this Task task, Action onError = null, Action onComplete = null)
{
try
{
await task;
onComplete?.Invoke();
}
catch (Exception e)
{
onError?.Invoke(e);
}
}
///
/// 等待一个有返回值的 Task 完成,并提供错误处理和完成时的回调。
///
/// Task 的返回结果类型。
/// 要等待的 Task。
/// 发生异常时的回调函数。
/// 任务成功完成时的回调函数,接收任务的返回结果。
public static async Task Await(this Task task, Action onError = null, Action onComplete = null)
{
try
{
T res= await task;
onComplete?.Invoke(res);
}
catch (Exception e)
{
onError?.Invoke(e);
}
}
}