一、前言
這篇文章將會快速介紹非同步函式(Async / Await)的簡易使用方式。
二、非同步函式 (Async / Await)
有一位讀者跟我分享,業界逐漸使用 Async 逐漸取代 Coroutine,在研究後我打算分享一個簡易的撰寫方式。
a. 程式碼一覽
上面這張圖,是我想辦法在10行程式碼中呈現非同步函式的用法。
b. 特色介紹
接下來簡單介紹非同步函式的特色,這是之前研究的成果,詳情可以參考下面這篇文章的留言,這邊摘錄其中我研究後,認為非同步函式擁有的特色。
1. Async 比 Coroutine 的可讀性高。
2. Async 比 Coroutine 的步驟簡單。
3. Async 可以在物件銷毀後繼續計算。
4. Async 不可以中斷,如果要中斷會一次中斷所有Task。
三、應用步驟
這邊會簡述使用的流程步驟。
a. Using System.threading.Tasks
就像使用「Unity Engine.UI」或「TMP.pro」一樣,請直接在最上面灰色地區打上 「Using System.threading.Tasks」。
b. 建立 Async 資料類型的函式
創建一個 void 函式,並且在 void 的前面添加上「Async」,讓這個函式從普通的不回傳函式轉換成非同步函式。
c. 使用 Await 類別
其中,非同步函式一定要有一個 Await ,所以請在函式中使用 await 中的函式,譬如本文示範的延遲(Delay),其他可以自行探索;延遲的單位式毫秒,因此如果希望延遲一秒鐘,請撰寫Delay(1000)。
d. 完成
這樣就完成了;如果希望重複,可以考慮使用 for 迴圈或 While 迴圈。
三、後記
作為重新寫文章的第一篇,我打算用最精簡的文字介紹非同步函式,結果我發現這樣效果很不錯,能快速理解非同步函式的特色與應用。