如果我有我想要一个正常的方法异步:为什么要使用异步并等待Task <>?
public int Foo(){}
我会做:
public Task<int> FooAsync(){
return Task.Run(() => Foo());
}
我为什么会做:
public async Task<int> FooAsync(){
return await Task.Run(() => Foo());
}
我计划的方式使用这个是:
FooAsync().ContinueWith((res) => {});
我希望方法不停止运行,但我希望像回调被触发,因此ContinueWith
。但是在第二个版本中,使用它有什么意义?
优秀的描述! – paulsm4
谢谢@ paulsm4。我必须说,我只是重复我最近听到的,我认为,它来自http://hanselminutes.com/327/everything-net-programmers-know-about-asynchronous-programming-is-wrong,但不是100%确定。我还没有太多的异步功能的经验,所以我可能是错的,我很乐意学习更多,也许异步在这种情况下提供了一些好处。 –
此外,您可能想阅读[我应该公开同步方法的异步封装?](http://blogs.msdn.com/b/pfxteam/archive/2012/03/24/10287244.aspx)(答案几乎总是“不”;如果你有一个同步方法,那么给它一个同步方法签名)。 –