【发布时间】:2018-01-23 23:08:17
【问题描述】:
我需要在 Web 服务上异步调用 Register() 方法(使用 C#)。 Web 服务中实际的Register 方法的实现不返回任何值。但如果方法失败,它会抛出异常。鉴于此,请问下面的代码看起来还可以吗?
public void RegisterProduct(string productName)
{
await RegisterProductAsync();
}
private async static Task RegisterProductAsync(string productName)
{
try
{
await myWebService.Register(productName);
}
catch(Exception ex)
{
LogException(ex);
}
}
感谢您的帮助。
【问题讨论】:
-
您要求进行代码审查吗?更好的地方是codereview.stackexchange.com。如果您遇到此代码的任何问题,请解释。
-
(1) 你的
async方法应该返回Task,而不是void。 (2) 日志记录可能应该包括实际捕获的异常。 (3) 为什么调用方法不等待操作? “一发不可收拾”有一种令人讨厌的倾向,嗯,被遗忘了。不要混淆异步操作,要求调用代码知道它们。
标签: c# .net async-await