C#異步方法返回void與Task的區別


C#異步方法返回void和Task的區別

如果異步(async關鍵字)方法有返回值,返回類型為T時,返回類型必然是 Task<T>。

但是如果沒有返回值,異步方法的返回類型有2種,一個是返回 Task, 一個是返回 void:



public async Task CountDownAsync(int count) { for (int i = count; i >= 0; i--) { await Task.Delay(1000); } } public async void CountDown(int count) { for (int i = count; i >= 0; i--) { await Task.Delay(1000); } }
//一般async和await是同時存在的當只有async時vs會顯示綠色波浪號 
 

CountDownAsync(3);
~~~~~~~~~~~~~~~~~

 

Async 方法有三種可能的返回類型: Task、Task<T> 和 void,但是 async 方法的固有返回類型只有 Task 和 Task<T>。 當從同步轉換為異步代碼時,任何返回類型 T 的方法都會成為返回 Task<T> 的 async 方法,任何返回 void 的方法都會成為返回 Task 的 async 方法。 返回 void 的 async 方法具有特定用途: 用於支持異步事件處理程序。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM