【问题标题】:Starting a parallel process with async [duplicate]使用异步启动并行进程 [重复]
【发布时间】:2019-07-15 16:38:30
【问题描述】:

使用控制台项目,我想将控制台窗口作为 UI 运行以查看和管理对象。同时,我想运行一个模拟过程,随着时间的推移生成和操作对象,这些对象在控制台中进行管理。

我以为我会让模拟过程异步,但我意识到我不能真正异步启动它,因为控制台项目的 main 方法不能是异步的。这行不通:

static async void Main(string[] args)
{}

那么它应该如何使用异步启动并行线程?

【问题讨论】:

标签: c# .net async-await


【解决方案1】:

如果你的异步方法返回一个任务,你可以使用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()}");
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-10-11
    • 2011-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-01
    • 1970-01-01
    • 2015-11-25
    相关资源
    最近更新 更多