XFE Git
XFE Studio Git
Git 首页 全局搜索
XFE 主站 文档 NuGet

XFEToolBox

【WPF】XFE工具箱

公开
关注 0 Fork 0 Star 0
UTF-8
namespace XFEToolBox.Client.Utilities;

public static class TaskManager
{
    public static async Task Run(Action action, string taskName = "未命名任务")
    {
        using var activity = ActivityCenterService.Start(taskName);
        try
        {
            await Task.Run(action);
            activity.Succeed();
        }
        catch (Exception exception)
        {
            activity.Fail(exception.Message);
            throw;
        }
    }

    public static async Task<TResult> Run<TResult>(Func<TResult> function, string taskName = "未命名任务")
    {
        using var activity = ActivityCenterService.Start(taskName);
        try
        {
            var result = await Task.Run(function);
            activity.Succeed();
            return result;
        }
        catch (Exception exception)
        {
            activity.Fail(exception.Message);
            throw;
        }
    }
}