TaskExtensions.cs 616 B

123456789101112131415161718192021
  1. namespace Hotline.Share.Tools;
  2. public static class TaskExtensions
  3. {
  4. /// <summary>
  5. /// 为 Task 类型的扩展方法,如果实体不为 null,则执行指定的操作。
  6. /// </summary>
  7. /// <typeparam name="T">实体的类型</typeparam>
  8. /// <param name="task">Task 实例</param>
  9. /// <param name="action">要执行的操作</param>
  10. /// <returns>Task 返回自身</returns>
  11. public static async Task Then<T>(this Task<T> task, Func<T, Task> action)
  12. {
  13. var result = await task;
  14. if (result != null)
  15. {
  16. await action(result);
  17. }
  18. }
  19. }