2016-12-15 31 views
-3

我一直在寻找的async的解释 - 这说异步等待在功能上等同于任务延续是否为真?

async Task<int> IndexWordsFromAsync(string url) 
{ 
    string content = await httpClient.GetStringAsync(url); 
    int wordCount = AddContentToIndex(content); 
    return wordCount; 
} 

int AddContentToIndex(string content) 
{ 
    ... 
} 

相当于

Task<int> task = IndexWordsFromAsync(url); 
var currentContext = SynchronizationContext.Current; 
task.ContinueWith(delegate 
{ 
    if(currentContext == null) 
     RestOfMethod(); 
    else 
     currentContext.Post(delegate { RegstOfMethod(); }, null); 
}, TaskScheduler.Current); 

有人可以确认到什么程度这是真的await?或者你可以将我链接到互联网上的某个地方,这种方式描述了async - await

回答

2

有人可以证实这种说法的真实性吗?

你有理由怀疑它吗?不用说你在哪里找到这个解释,就很难批评它。

有很多很多细节错误,但基本的想法是健全的。异步等待是一种构建异步工作流的语法糖,由具有连续性的任务组成。

或者你可以把我链接到互联网上描述异步等待的地方吗?

这不是推荐文章的网站;你可以做你自己的网页搜索。

如果你想要我关于这个问题的文章,所以很容易发现:

https://blogs.msdn.microsoft.com/ericlippert/tag/async/

这些是最对最不最近的订单,所以如果你想从头开始,去到第二页的底部。

你也可以考虑阅读Jon Skeet,Stephen Cleary,Mads Torgersen和Stephen Toub写的文章,这些文章也很容易找到。