C#任务不是任务

Ian*_*ink -1 c# task

我正在实现一个接口

Task Something()
Run Code Online (Sandbox Code Playgroud)

但是实现中的代码都不是异步的

Task Something(){
    var x=1;
    return null;
}
Run Code Online (Sandbox Code Playgroud)

这当然会在调用时导致错误:

await Something()
Run Code Online (Sandbox Code Playgroud)

如何发回空白任务以使界面满意?

Ree*_*sey 6

您可以使用Task.FromResult返回已完成的任务.

Task Something()
{
    var x=1;
    // Do *something* here ;)
    return Task.FromResult(true);
}
Run Code Online (Sandbox Code Playgroud)

请注意,这将同步运行,而不是异步操作,因此最好也适当地记录它.