google code prettify

2021年2月10日 星期三

[C#]async非同步呼吸法,用的好變常柱,用的不好變卡柱

最近流行鬼滅之刃,所以用了雙壓(柱)造句...有點冷😨

言歸正傳,寫ASP.NET Core之前,有兩個天賦要點,一個是DI,另一個是async/await 非同步化,本篇主要用來溫故知新Async,內容會以MSDN or 大神的文章為主,避免忘記自己又腦補。

ASP.NET async 基本心法

  • 非同步(Asynchronous)不在於提高效能(Performance),而是增加產能(Throughput)
  • 非同步不等於多執行緒
  • 非同步只對 I/O 相關作業有效,對吃 CPU 的作業沒轍
  • async 像病毒一樣會傳染(用了就知道,Is it good to drink)
  • async,AP Side 多多使用,library 盡量少用

宣告為 async 的 .NET 方法必須傳回以下三種型別之一:

Task:作業結束時將控制權還給呼叫端

Task<T>:作業結束時回傳型別為 T 的物件給呼叫端

void:採射後不理(Fire-and-Forget)哲學,呼叫後即失去掌握,async void 在實務上不應使用,事件處理器是唯一例外


Personal Memo

VS2019新建的專案都是C# 7.1以上,列舉有哪些可以使用

AP Side

Client Side

誤用的情況下

  • deadlock ,UI 畫面有時會當掉,有時候不會
  • 系統慢慢的凋零,久久系統需要重開機,卻不知道原因
  • 發生Exception卻不知道哪一行出錯

Reference

黑暗大一系列精彩的剖析文章:

蔡煥麟老師一系列精彩的剖析文章:

1 則留言:

  1. Harrah's Hotel & Casino - Mapyro
    Harrah's Hotel & Casino in Atlantic City is a 천안 출장마사지 luxury 거제 출장샵 hotel and casino located in 청주 출장마사지 Atlantic City, New Jersey, 인천광역 출장안마 United States. The hotel is located in 포항 출장마사지

    回覆刪除