我正在尝试在方法调用中使用它来从源中获取字符串
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(url);
string responseBody = await response.Content.ReadAsStringAsync();
Console.Write(responseBody);
当在方法和类之外使用时,它可以很好地与我的url配合使用,并返回我正在寻找的正确字符串。但是,当我把它放在我的类和方法中时,它不再做任何事情。没有错误,只是什么都不返回。
作为参考,我使用的方法如下所示
public async void get(String test) {
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(test);
string responseBody = await response.Content.ReadAsStringAsync();
Console.Write(responseBody);
}
我不知道为什么一旦我把它放入一个方法中,它就停止工作了。
让你的方法返回一个任务,它就会工作
public async Task get(String test)
{
HttpClient client = new HttpClient();
HttpResponseMessage response = await client.GetAsync(test);
string responseBody = await response.Content.ReadAsStringAsync();
Debug.Write(responseBody);
}
private async void btnTest_Click(object sender, EventArgs e)
{
try
{
Task t = get("https://stackoverflow.com/questions/71787949/c-sharp-httpclient-get-does-not-work-when-put-in-async-method");
IEnumerable<Task> tasks = new[] { t };
await Task.WhenAll(tasks);
}
catch (Exception oException)
{
Debug.WriteLine(oException.ToString());
}
}
执行以下操作有什么不同: vs 在我的情况下,出于某种原因,只有第二种方法有效。第一个似乎永远不会结束。
在调试的目的,我写了一个新的代码,看看异步函数是如何工作的,所以我有下一个情况 我有3个函数log1(),log2(),main(),我希望: 当我调用main()时,它应该调用log1(),直到它完成所有语句,然后它应该调用log2() 所以我希望它能输出 1个 2. 但它确实有产出 2. 1个 我要注意的是,我不能编辑slowFunction,您应该将它视为需要未知时间执行的函数,因此我需要等
我有一个问题,这个代码没有插入到数据库中的值。。。 我想不出来。。。我已经确保这些值是从HTML表单页面传递过来的。我已经能够让删除页面正常工作了。“mysqli_查询(insert-into)”只是没有将值插入数据库。
没有await并且在非异步方法中调用异步方法的行为是什么?我这样问是因为我看到Visual Studio在调用异步方法时没有显示任何警告,好像这是一件非常正常的事情。在这种情况下,异步方法的行为是否像是同步的?
我刚刚完成了一门关于python for Data Science的在线课程。我想在Pycharm edu中编写一些自己的代码。我以前也这么做过,一切都很顺利。我在Linux Mint中通过Pycharm和控制台下载了“numpy”和“matplotlib”。当我导入numpy并导入matplotlib(并且不编写其他内容)时,我的程序运行正常,但是当我编写“import matplotlib.p