小编典典

Task.Start / Wait和Async / Await有什么区别?

c#

我可能缺少一些东西,但是这样做有什么区别:

public void MyMethod()
{
  Task t = Task.Factory.StartNew(DoSomethingThatTakesTime);
  t.Wait();
  UpdateLabelToSayItsComplete();
}

public async void MyMethod()
{
  var result = Task.Factory.StartNew(DoSomethingThatTakesTime);
  await result;
  UpdateLabelToSayItsComplete();
}

private void DoSomethingThatTakesTime()
{
  Thread.Sleep(10000);
}

阅读 761

收藏
2020-05-19

共1个答案

小编典典

我可能会缺少一些东西

你是。

Task.Wait和和有await task什么区别?

您从餐厅的服务员那里订购午餐。下订单后的片刻,一个朋友走进来,坐在您旁边,开始对话。现在,您有两个选择。在任务完成之前,您可以忽略您的朋友-
您可以等到汤到达时再等待,而无需执行其他操作。或者您可以回复您的朋友,当您的朋友停止讲话时,服务员会带您汤。

Task.Wait阻止任务直到任务完成-
在任务完成之前,您将忽略您的朋友。await继续在消息队列中处理消息,当任务完成时,它会排队显示一条消息,提示“在等待后从您离开的地方取走”。您与朋友交谈,谈话中断时,汤就到了。

2020-05-19