如何将异步任务方法分配给多播委托参数
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 void
是 intended specifically 用于使异步事件处理程序成为可能。这就是它存在的全部原因。所以用它来处理 RowSelect
事件是可以的。
我需要将 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 void
是 intended specifically 用于使异步事件处理程序成为可能。这就是它存在的全部原因。所以用它来处理 RowSelect
事件是可以的。