Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/323.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# (等待)任务,并非所有代码路径都返回值_C#_List_Async Await - Fatal编程技术网

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

C# (等待)任务,并非所有代码路径都返回值,c#,list,async-await,C#,List,Async Await,Ok My employee对象具有显示在数据网格中的EmployeePayHistory列表。我有一个从datagrid获取所选行的方法,在这里我尝试实际实现该函数。然而,在DeleteEmployeePayHistories()部分,它给了我一个错误,说它是可等待的。我很想知道如何修复它,以及它为什么要这样做。提前感谢您的帮助 private Task DeleteEmployeePayHistories() { Employee.Employe

Ok My employee对象具有显示在数据网格中的EmployeePayHistory列表。我有一个从datagrid获取所选行的方法,在这里我尝试实际实现该函数。然而,在DeleteEmployeePayHistories()部分,它给了我一个错误,说它是可等待的。我很想知道如何修复它,以及它为什么要这样做。提前感谢您的帮助

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

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

private void DeleteEmployeePayHistories()

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

private void DeleteEmployeePayHistories()

您的方法应该返回
任务
(可能是
Task.CompletedTask
),或者使用
async
关键字和
wait
某个内容

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

最后,如果您不需要异步代码,您可以使您的方法
void

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

您的方法应该返回
任务
(可能是
Task.CompletedTask
),或者使用
async
关键字和
wait
某个内容

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

最后,如果您不需要异步代码,您可以使您的方法
void

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

好的,如果我在按下按钮时调用我的DeleteEmployeePayHistories方法,这是否意味着我需要返回任务?@brock不是按钮意味着它需要返回任务,而是您使该方法的返回类型为
task
。好的,所以我不尝试返回任何内容,我只是想从EmployeePayHistories列表中删除SelectedPayHistory。我和一个朋友一起做这个项目,他说我们不想在早些时候使用async,但他现在上床睡觉了,所以我不知道为什么。我想你只是想在这个答案中使用
void
-第三个选项。@brock我只是想从列表中删除selectedPayHistory,你正在返回命令。如果您必须异步访问它。参见Jamiec的第二个示例。我将添加
wait Task.Run(()=>{/*code*/})
Ok如果我在按下按钮时调用DeleteEmployeePayHistories方法,这是否意味着我需要返回任务?@brock不是按钮意味着它需要返回任务,而是您使该方法的返回类型为
task
。Ok,所以我不尝试返回任何内容,我只是想从EmployeePayHistories列表中删除SelectedPayHistory。我和一个朋友一起做这个项目,他说我们不想在早些时候使用async,但他现在上床睡觉了,所以我不知道为什么。我想你只是想在这个答案中使用
void
-第三个选项。@brock我只是想从列表中删除selectedPayHistory,你正在返回命令。如果您必须异步访问它。参见Jamiec的第二个示例。我将添加
wait Task.Run(()=>{/*code*/})