如何将异步任务方法分配给多播委托参数

How to assign async task method to a multicastdelegate parameter

我需要将 async Task 方法分配给 multicastdelegate 参数,如下所示。

protected async Task GridRowSelect(Employee emp)
{
    await Service.SetRowSelect(emp.Id);
}

gridSettings.RowSelect = new EventCallback<Employee>(this, (Action<Employee>)GridRowSelect);

但是报错

'Task GridRowSelect(Employee) has the wrong return type'

如果我将 async Task 更改为 async void,这会起作用。但这是正确的方法吗?

是的,async void是正确的方法。 async voidintended specifically 用于使异步事件处理程序成为可能。这就是它存在的全部原因。所以用它来处理 RowSelect 事件是可以的。