如何从Winforms按钮单击事件中调用异步方法?

Kir*_*eed 2 c# async-await

我有一个要异步运行的I / O绑定方法。

帮助文档中,它提到我应该使用async并在没有Task.Run的情况下等待

报价

对于绑定到I / O的代码,您需要等待一个操作,该操作将在异步方法内部返回Task或Task。

如何从winforms按钮单击事件中执行此操作?

我试过了

private void button_Click(object sender, EventArgs e)
{ 
      await doLoadJob();
}

private async Task<int> doLoadJob()
{
    await loadJob();   
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

小智 6

您的button_Click方法必须是asyncasyncprivate和之间放置一个void

private async void button_Click(object sender, EventArgs e)
{ 
     await LongOperation();
}
Run Code Online (Sandbox Code Playgroud)

  • 对不起。我尝试提出一个新问题,它被投票关闭,作为这个问题的重复。 (4认同)
  • @KirstenGreed将其发布到**新问题**中。停止更改原始问题的范围。您的原始帖子没有显示这样的代码 (2认同)