如果在asp.net中为同步方法调用异步方法时不等待异步方法怎么办?

时间:2019-06-02 16:15:48

标签: c# asp.net async-await

我有两种方法可以通过电子邮件和短信异步发送otp。

现在,我从同步事件处理程序方法中调用它们。

这很好。我同时通过短信和电子邮件收到OTP。但我想知道这是否正确,还是应该让我的事件异步并等待这两种方法发送otp。

请注意,我不需要异步方法的任何结果/返回值。我只需要他们尽自己的一份力量。

我已经在网上搜索了答案,但没有人能消除我的疑问。 请帮助。我是异步/等待新手。

public async Task SendEmail(int otp) {}
public async Task SendSMS(int otp) {}

protected void SendOTP_OnClick(object sender, EventArgs e){
    // Do Something with database...
    int otp=1234;
    SendEmail(otp);
    SendSMS(otp);
}

1 个答案:

答案 0 :(得分:2)

  

请注意,我不需要异步方法的任何结果/返回值。我只需要他们尽自己的一份力量。

您是否需要知道他们是否在发挥作用?方法的结果不仅包括返回值,而且还指示该方法是成功(成功返回)还是失败(引发异常)。如果您需要知道这些方法是否失败,则不能使用即发即弃。

  

我想知道这是正确的还是我应该使事件异步并等待这两种方法发送otp。

绝大多数时候,开发人员确实想知道他们的方法是否失败,因此最好await