如何進行Task.CompletedTask和Task.Result分析,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。

成都創新互聯公司是一家集網站建設,平昌企業網站建設,平昌品牌網站建設,網站定制,平昌網站建設報價,網絡營銷,網絡優化,平昌網站推廣為一體的創新建站企業,幫助傳統企業提升企業形象加強企業競爭力。可充分滿足這一群體相比中小企業更為豐富、高端、多元的互聯網需求。同時我們時刻保持專業、時尚、前沿,時刻以成就客戶成長自我,堅持不斷學習、思考、沉淀、凈化自己,讓我們為更多的企業打造出實用型網站。
例如,定義了一個返回Task的接口方法,但是在實現中,并沒有特別耗時的代碼。
public interface IComputer { Task Do(); Task<string> DoString();} 一般我們會這樣實現。即使實現中代碼很簡短。
public class Computer : IComputer { public Task Do() { return Task.Run(() => { //邏輯代碼 }); } public Task<string> DoString() { return Task.Run( () => { //邏輯代碼 return "aaa"; }); }} 實際上,Task類上面有兩個幫助程序,,這些幫助程序讓代碼更具可讀性,并且所需的運行時開銷更少。
對于上述接口實現中的 Do方法,我更愿意使用Task.CompletedTask。
public Task Do() { //邏輯代碼 return Task.CompletedTask; } 我們看一下CompletedTask的定義
/// <summary>Gets a task that has already completed successfully.</summary>/// <returns>The successfully completed task.</returns>public static Task CompletedTask { get; }
如果返回Task <T>怎么辦?在這種情況下,如果您已經有了答案,請使用Task.FromResult包裝答案。
public Task<string> DoString() { //邏輯代碼 return Task.FromResult("aaa");} 看一下FromResult的定義
/// <summary>Creates a <see cref="T:System.Threading.Tasks.Task`1" /> that's completed successfully with the specified result.</summary>/// <param name="result">The result to store into the completed task.</param>/// <typeparam name="TResult">The type of the result returned by the task.</typeparam>/// <returns>The successfully completed task.</returns>public static Task<TResult> FromResult<[Nullable(2)] TResult>(TResult result);
通過上述的改變,即實現了接口的實現,也減少了Task.Run調用的系統開銷。
看完上述內容,你們掌握如何進行Task.CompletedTask和Task.Result分析的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注創新互聯行業資訊頻道,感謝各位的閱讀!
文章名稱:如何進行Task.CompletedTask和Task.Result分析
分享網址:http://www.yijiale78.com/article40/jjjheo.html
成都網站建設公司_創新互聯,為您提供商城網站、小程序開發、手機網站建設、網站營銷、移動網站建設、企業建站
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯