private bool _secondRequest;
public async Task<UserModel> RunSomeMethodAsync(UserModel model, bool mode = true)
{
// Some code here...
HttpClient client = new HttpClient();
var response = await client.SendAsync(request);
var responseContent = await response.Content.ReadAsStringAsync();
if (responseContent != "[]\r")
{
return await ProcessThisStringAsync(responseContent);
{
else if (responseContent == "[]\n" && !_secondRequest)
{
_secondRequest = true;
await RunSomeMethodAsync(model, false) // Run same method, different param
}
return model.Error = "An error has occurred";
}
除非我错过了一些明显的东西,否则这应该可以使用同步代码。这个版本会异步运行吗?我想添加一个Task.Delay(1000),但这似乎有点&#39;缺憾。
答案 0 :(得分:2)
此版本是否会异步运行?
是
是的,不要那样做。除非您因某种原因 (例如远程服务的速率限制)。我想添加一个Task.Delay(1000),但这似乎有点'kludgy。
答案 1 :(得分:0)
除非我错过了一些明显的东西,否则这应该是同步的。
它无法同步工作。为什么会同步工作?该方法本身是异步的,您可以await
它,这是一个异步操作。
如何以异步方式运行它?
做你已经做过的事。