2016-12-15 32 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寫的文章,這些文章也很容易找到。