我需要在 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);
}
}
感谢您的帮助。
最佳答案
我大概会写出如下代码:
private async static Task<int> RegisterProductAsync(string productName)
{
try
{
await Task.Run(() => myWebService.Register(productName));
return 0;
}
catch (Exception ex)
{
LogException();
return 1;
}
}
public async Task<int> RegisterProduct(string productName)
{
var result = await RegisterProductAsync(productName);
return result;
}
一直遵循“异步”规则。
关于c# - 异步调用 webservice 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45702841/