使用控制台项目,我想将控制台窗口作为UI运行以查看和管理对象。同时,我想运行一个模拟过程,该过程会随着时间的流逝生成并处理对象,这些对象在控制台中进行管理。
我以为我可以使仿真过程异步,但是我意识到我不能真正异步地启动它,因为控制台项目的main方法不能是异步的。这行不通:
static async void Main(string[] args)
{}
那么应该如何使用异步启动并行线程?
答案 0 :(得分:1)
如果您的异步方法返回一个Task,则可以使用Wait
。这是Benjarmin Perkins的blog的示例:
static private async Task callWebApi()
{
WebResponse response = await WebRequest
.Create("http://**?**.azurewebsites.net/api/sleepy")
.GetResponseAsync()
.ConfigureAwait(false);;
WriteLine(response.StatusCode.ToString());
}
public static void Main(string[] args)
{
try
{
callWebApi().Wait();
}
catch (Exception ex)
{
WriteLine($"There was an exception: {ex.ToString()}");
}
}