我有点新异步等待概念。有以下方法库中存储的异步等待问题的方法与参数
public TEntity Get(int id)
{
return Context.Set<TEntity>().Find(id);
}
我把这个方法从另一个方法
BindingSource.DataSource = unitOfWork.ClientDemos.Get(newClient.ClientId);
我想这个异步因为这可能取决于服务器速度,这样需要一段时间。我该如何做到这一点?我疲惫的每一个方式都给了我不同类型的错误。我不想用我错误的方法来打扰你们。但是,这是我尝试过的并且没有奏效的东西。
Task <IEnumerable<ClientDemographic>> tsk= new Task <IEnumerable<ClientDemographic> >(unitOfWork.ClientDemos.Get(newClient.ClientId));
tsk.Start();
BindingSource.DataSource = await tsk;
它工作奇迹,当没有参数传递和返回类型是int。如下所示。这个效果很好。
Task<int> tsk = new Task<int>(unitOfWork.Complete);
tsk.Start();
rej = await tsk;
请说明一下这件事情。对此,我真的非常感激! 干杯! 谢谢!
使用'Task.Run'还需要一些时间来对这个https://msdn.microsoft.com/en-us/magazine/jj991977.aspx读了 – Nkosi
从具有'BindingSource.DataSource = unitOfWork.ClientDemos.Get(newClient.ClientId);'的方法中显示更多代码,'这可以并且应该在没有'Task.Run'或'new Task'的情况下完成,但是要给你一个很好的例子,我们需要看看设置数据绑定的方法。此外,你真的应该检查你在'Context.Set().Find(id);'调用的库的文档,''调用可能会有一个'FindAsync(id)'调用你可以做,并等待而不是在另一个线程上执行'.Find'。最后,对你所展示的例子没有任何效果没有奏效。 –