gpt4 book ai didi

c# - 如何在 Main 中使用 await

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:16 24 4
gpt4 key购买 nike

<分区>

我编写了一个测试应用程序来帮助我理解 await/async。我有一个方法 MethodAsync1() 可以正常工作。但是,当我从 Main() 调用它时,我不知道如何等待 MethodAsync1() 完成。请参阅下面的代码。

   class Program
{
static void Main(string[] args)
{
Debug.WriteLine(DateTime.Now + " Main()1");
Task<String> v1 = MethodAsync1();
Debug.WriteLine(DateTime.Now + " Main()2 - prints out before Method1 finishes");

// I now want to wait for MethosAsync1() to complete before I go further.
// This line has error:
// Error 1 The 'await' operator can only be used within an async
// method. Consider marking this method with the 'async' modifier and
// changing its return type to 'Task'.
String v2 = await v1;

Debug.WriteLine(DateTime.Now + " Main()3 - Method1() now finished");
}



static async Task<String> MethodAsync1()
{
Debug.WriteLine(DateTime.Now + " Method1()1 ");

HttpClient client = new HttpClient();
Task<HttpResponseMessage> responseTask = client.GetAsync("http://bbc.co.uk");

// Do other stuff
Debug.WriteLine(DateTime.Now + " Method1()2 ");

// Wait for it to finish - yield thread back to Main()
var response= await responseTask;

// responseTask has completed - so thread goes back here and method returns fully
Debug.WriteLine(DateTime.Now + " Method1()3 ");

return "finished";
}
}

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com