【问题标题】:Difference between await and Task.Wait [duplicate]await 和 Task.Wait 之间的区别 [重复]
【发布时间】:2014-01-15 00:53:53
【问题描述】:

第一种方式:

var tds=SearchProcess();
await tds;

public async  Task<XmlElement> SearchProcess()
{
}

第二种方式:

var tds= Task.Factory.StartNew(()=>SearchProcess());
Task.WaitAll(tds);

public XmlElement SearchProcess()
{
}

在上述两种方法中是否存在任何性能差异?

【问题讨论】:

标签: c#


【解决方案1】:

Task.WaitAll 是阻塞的,而使用await 将使包含方法async。要异步等待多个任务,您可以使用Task.WhenAll

public async Task DoSomething()
{
    IEnumerable<Task> tds = SearchProcess();
    await Task.WhenAll(tds);
    //continue processing    
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-28
    • 2014-08-16
    • 2011-04-08
    • 2012-11-24
    • 2013-06-05
    • 2021-09-29
    相关资源
    最近更新 更多