第一种方式:
var tds=SearchProcess();
await tds;
public async Task<XmlElement> SearchProcess()
{
}
第二种方式:
var tds= Task.Factory.StartNew(()=>SearchProcess());
Task.WaitAll(tds);
public XmlElement SearchProcess()
{
}
在上述两种方法中,是否有任何性能差异?
答案 0 :(得分:7)
Task.WaitAll
正在屏蔽,而使用await
会产生包含方法async
。要异步等待多个任务,您可以使用Task.WhenAll
:
public async Task DoSomething()
{
IEnumerable<Task> tds = SearchProcess();
await Task.WhenAll(tds);
//continue processing
}