假设我有一个异步方法:
private async Task DoSomethingAsync(int value)
{
await Library.SomethingAwesomeAsync(value);
}
现在我有了一个输入控件:
<input type="text" @bind="FancyProperty" @bind:after="() => DoSomethingAsync(inputValue)" />
这并没有给我警告。但我希望我需要写以下内容:
<input type="text" @bind="FancyProperty" @bind:after="async () => await DoSomethingAsync(inputValue)" />
有谁知道为什么这两种方式似乎都有效? 当在普通的 c# 方法中编写以下内容时,我收到警告(“因为此调用不是等待,所以该方法的执行之前继续......”):
Task task = new Task(() => DoSomethingAsync(inputValue));
@bind:after
希望您返回 Task?
。
这就是您在第一个示例中所做的,因此它可以编译。
第二个示例可以工作,但太过分了,将异步方法包装在匿名异步方法中。