gpt4 book ai didi

c# - Func 委托(delegate)中的 Task 和 Task

转载 作者:行者123 更新时间:2023-11-30 14:23:32 24 4
gpt4 key购买 nike

我想清理我的一些代码。我有重载方法。我能以某种方式简化这段代码并在另一个方法中调用一个方法吗?无法弄清楚如何做到这一点。

private async Task<T> DecorateWithWaitScreen<T>(Func<Task<T>> action)
{
SplashScreenManager.ShowForm(this, typeof(WaitForm), true, true, false);
try
{
return await action();

}
catch (Exception e)
{
MessageBox.Show(e.Message);
throw;
}
finally
{
SplashScreenManager.CloseForm(false);
}
}

private async Task DecorateWithWaitScreen(Func<Task> action)
{
SplashScreenManager.ShowForm(this, typeof(WaitForm), true, true, false);
try
{
await action();
}
catch (Exception e)
{
MessageBox.Show(e.Message);
throw;
}
finally
{
SplashScreenManager.CloseForm(false);
}
}

最佳答案

怎么样:

private Task DecorateWithWaitScreen(Func<Task> action)
=> DecorateWithWaitScreen<int>(async () => { await action(); return 0; });

关于c# - Func 委托(delegate)中的 Task<T> 和 Task,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45100948/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com