我实现一个接口C#任务不是一个任务
Task Something()
,但没有在执行代码时调用异步
Task Something(){
var x=1;
return null;
}
这在错误路线的结果:
await Something()
如何发回空白任务以使界面快乐?
我实现一个接口C#任务不是一个任务
Task Something()
,但没有在执行代码时调用异步
Task Something(){
var x=1;
return null;
}
这在错误路线的结果:
await Something()
如何发回空白任务以使界面快乐?
您可以使用Task.FromResult
返回已完成的任务。
Task Something()
{
var x=1;
// Do *something* here ;)
return Task.FromResult(true);
}
请注意,这将同步运行,而不是一个异步操作,所以最好也适当地记录。
如果期望异步,为什么不使它成为异步?
Task Something()
{
return Task.Run(() => { /* your code here */ });
}
为了等待任何方法,它需要有一个异步签名所以为了等待的东西()应当作出这样的:
async Task Something()
{
//do stuff
}
请记住,当你想返回一个值,你应该返回一个任务,如果你想返回void,你应该只返回一个任务
它不需要被标记为异步等待它 - 异步是一个实现细节。它只需要返回可以等待的任务,如任务。 – 2014-12-01 20:23:37