Task.Factory.FromAsync调用同步运行

时间:2016-06-13 17:29:10

标签: c# async-await task

我正在使用Task.Factory.FromAsync异步发布消息(到rabbitmq)。以下代码似乎同步运行。在“开始发布方法”之后,“主页末尾”行显示在控制台上。

当Task.Factory.FromAsync中的代码“等待”时,不应该将控件返回到主线程并显示“End Of Main”?

Contact

1 个答案:

答案 0 :(得分:1)

  

以下代码似乎同步运行。 "主要结束" "在开始发布方法"。

之后,控制台上会显示一行

那是对的。在完成启动 Task之前,main方法无法继续执行。您的BeginPublish方法意味着启动任务,并尽快返回,让所有工作都无阻塞地完成。调用者不能继续执行,直到获得该方法返回的IAsyncResult为止。