情境
假設有一項任務,執行時會做三件事情,而這三件事情彼此並沒有相依關係,傳統程式寫法通常都是 1 > 2 > 3 依序呼叫下去做,但這樣有一個問題就是,假設 1 這個任務要執行特別久,那 2、3 都得等 1 做完才能執行到,整體來說效率並沒有最佳化。
跑一次需要 2.012 秒完成,如果需要重複 10 次 、100 次,那所需時間會相當可觀。
非同步版本
改成非同步版本後,它執行順序就不會被第一步給拖累,三個工作是併行處理
但這會有一個問題,如果程式是 Run 在 Console Application 中,因為沒有等待非同步的程式都執行完,就已經跑到 Done ,而導致 Console Application 被關掉,其相應的 Process 也會被停掉,導致有些工作沒有執行完,所以必須要確保所有程式都執行完才關閉的機制在。