我有一个方法可以创建初始屏幕
public static async Task CreateSplashScreen(Task action, Form form, string description)
{
var splashScreenManager = new SplashScreenManager(form, typeof(WaitForm1), true, true)
{
SplashFormStartPosition = SplashFormStartPosition.CenterScreen,
};
splashScreenManager.ShowWaitForm();
splashScreenManager.SetWaitFormDescription(description);
await action;
splashScreenManager.CloseWaitForm();
splashScreenManager.Dispose();
}
下面是创建和预览报表的方法
public static async Task CreateBlackProductionProjectReport()
{
using RepCharpenteProductionByShiftTime report = new();
SmartHelpers.AddDateRangeShiftTimeQueryParameter(report.sqlDataSource1.Queries[0].Parameters);
SmartHelpers.AddDateRangeParameter(report);
await SmartHelpers.AddShiftTimeParameter(report);
report.ShowRibbonPreviewDialog();
}
单击按钮时,我调用CreateSplashScreen方法,如下所示
private async void ShowBlackProductionProjectReport(object sender, ItemClickEventArgs e)
{
await CreateSplashScreen(CreateBlackProductionProjectReport,
this,
ReportDescription);
}
我收到此错误
无法从'method group'转换为'Task'
我尝试使用Action而不是Task作为参数
public static void CreateSplashScreen(Action action,Form form, string description)
但我得到了
“任务CreateBlackProductionProjectReport()”的返回类型错误
我遗漏了什么,如何修复?
1条答案
按热度按时间vm0i2vca1#
你的第一次尝试几乎是正确的,你只是漏掉了一对括号:
对于以下签名:
该调用类似于:
如果没有它们,你传递的是可以被同化为
Func<Task>
的东西