摘要:Async Methods Are Easier to Write

  • 759
  • 0

摘要:Async Methods Are Easier to Write

aysnc method的特徵

第一、方法的定義之前包含async。

第二、方法的命名慣例以Async結尾。

第三、方法的定義的傳回值必定是下列三種的其中之一:Task<TResult>(對應到return TResult;)、Task(對應到return;或無return)與void(對應到事件處理與delegate)。

第四、async修飾的方法定義內部必定至少包含一個await expression,await的所在位置代表一個中斷點,當程式執行至await時,將不再繼續往下執行,直到await之後的非同步方法的作業完成之後,才會繼續往下執行。但是在繼續往下執行之前,整個控制權會由await所在的中斷點返回呼叫包含此一中斷點的函數的所在之處。

 


DoIndependentWork();
 string urlContents = await getStringTask;

前述二段程式碼的功能相同,唯一的差別在於倘若必須在取得傳回值之前插入其他獨立運作的程式碼,就必須採取第二種方法。

 

參考資料來源:

[1]Async Methods Are Easier to Write
http://msdn.microsoft.com/en-us/library/hh191443.aspx#BKMK_HowtoWriteanAsyncMethod

[2]What Happens in an Async Method
http://msdn.microsoft.com/en-us/library/hh191443.aspx#BKMK_WhatHappensUnderstandinganAsyncMethod

 

補充資料來源:

[1]Control Flow in Async Programs (C# and Visual Basic)
http://msdn.microsoft.com/en-us/library/hh873191.aspx