我试图了解async-await方法,但我真的没有掌握它。我之前使用的是WebRequest,它非常简单但很遗憾是同步的。
我的问题是StartTest()没有运行 - "因为没有等待这个调用,所以当前方法的执行在调用完成之前继续。考虑应用“等待”#39;运营商对电话的结果'。我不能在父方法为Main之前添加await,它当然不能是异步方法。我意识到我对异步的理解是可怕的 - 有人能以正确的方式指出我吗?
static void Main(string[] args)
{
StartTest();
async Task<string> StartTest()
{
using (var client = new HttpClient())
{
List<string> urls = new List<string> { //a list of urls i want to check };
if (await GetStatusCodes(urls) != true)
{
return "NOT OK";
}
}
return "OK";
}
async Task<bool> GetStatusCodes(IList<string> urls)
{
using (var client = new HttpClient())
{
foreach (var url in urls)
{
var response = await client.GetAsync(url);
if (response.StatusCode.ToString() != "OK")
{
return false;
}
}
return true;
}
}
}
答案 0 :(得分:0)
您可以将MainAsync方法放入要运行异步的内容中。
e.g。
SELECT * WHERE parent_id = id