(等待)任务,并非所有代码路径都返回值

时间:2018-07-12 07:15:22

标签: c# list async-await

好,我的员工对象有一个EmployeePayHistories列表,这些列表显示在数据网格中。我有一种方法可以从数据网格中获取选定的行,在这里我试图实际实现该功能。但是在DeleteEmployeePayHistories()部分,它给了我一个错误,说它是可等待的。我很想知道如何修复它,以及为什么要这样做。预先感谢您的帮助。

    private Task DeleteEmployeePayHistories()
        {
           Employee.EmployeePayHistories.Remove(SelectedPayHistory);
           SelectedPayHistory = null;
        }

2 个答案:

答案 0 :(得分:5)

您的方法应该返回Task(可能是Task.CompletedTask)或使用async关键字和await

private Task DeleteEmployeePayHistories()
{
    Employee.EmployeePayHistories.Remove(SelectedPayHistory);
    SelectedPayHistory = null;
    return Task.CompletedTask;
}

private async Task DeleteEmployeePayHistories()
{
    // something in here should use await or you'll get another warning
    Employee.EmployeePayHistories.Remove(SelectedPayHistory);
    SelectedPayHistory = null;
}

最后,如果不需要异步代码,则可以将方法设为void

private void DeleteEmployeePayHistories()
{
    Employee.EmployeePayHistories.Remove(SelectedPayHistory);
    SelectedPayHistory = null;
}

答案 1 :(得分:1)

您的方法返回一个Task,如果您不希望它等待并且不返回任何内容,请将返回类型更改为void。

private void DeleteEmployeePayHistories()