我正在使用该async
框架进行网络通话。我在下面的代码中收到一个错误
class Program
{
static void Main(string[] args)
{
TestAsync async = new TestAsync();
await async.Go();//Error: the await operator can only be used with an async method. Consider markign this method with the async modifier. Consider applying the await operator to the result of the call
}
}
class TestAsync
{
public async Task Go()
{
using (WebClient client = new WebClient())
{
var myString = await client.DownloadStringTaskAsync("http://msdn.microsoft.com");
Console.WriteLine(myString);
}
}
}
我已经尝试了此代码的几种变体。它要么在运行时失败,要么无法编译。在这种情况下,该方法在我的异步调用被允许触发之前完成。我究竟做错了什么?
我的目标是以异步方式使用 WebClient 执行对网站的调用。我想将结果作为字符串返回并使用Console.WriteLine
. 如果您从执行的代码开始感觉更舒服,只需更改
await async.Go();
toasync.Go();
代码将运行,但不会命中 Console.WriteLine。