日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

asp.net html5 异步,asp.net core 系列 5 项目实战之:NetCore 的 async 和 await(参考自:Microsoft教程)...

發布時間:2025/3/21 asp.net 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 asp.net html5 异步,asp.net core 系列 5 项目实战之:NetCore 的 async 和 await(参考自:Microsoft教程)... 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

十年河東,十年河西,莫欺少年窮

學無止境,精益求精

1、簡介

從 VS 2012 開始,新引入了一個簡化的方法,稱為異步編程。我們在 >= .NETFRM 4.5 中和 Windows 運行時中使用異步,編譯器它會幫助了我們降低了曾經進行的高難度異步代碼編寫的工作,但邏輯結構卻類似于同步代碼。因此,我們僅需要進行一小部分編程的工作就可以獲得異步編程的所有優點。

對于同步的代碼,大家肯定都不陌生,因為我們平常寫的代碼大部分都是同步的,然而同步代碼卻存在一個很嚴重的問題,例如我們向一個Web服務器發出一個請求時,如果我們發出請求的代碼是同步實現的話,這時候我們的應用程序就會處于等待狀態,直到收回一個響應信息為止,然而在這個等待的狀態,對于用戶不能操作任何的UI界面以及也沒有任何的消息,如果我們試圖去操作界面時,此時我們就會看到”應用程序為響應”的信息(在應用程序的窗口旁),相信大家在平常使用桌面軟件或者訪問web的時候,肯定都遇到過這樣類似的情況的,對于這個,大家肯定會覺得看上去非常不舒服。引起這個原因正是因為代碼的實現是同步實現的,所以在沒有得到一個響應消息之前,界面就成了一個”卡死”狀態了,所以這對于用戶來說肯定是不可接受的

2、優勢

異步編程最大的優勢其實就是提供系統執行效率,畢竟一個串行執行的程序不如并行來的快。譬如:一個人要干十件事情不如十個人各干一件事情效率高。

3、關鍵字

C# 中的?async?和?await?關鍵字都是異步編程的核心。通過使用這兩個關鍵字,我們就可以在 .NET 輕松創建異步方法。

4、返回值類型

4.1、Void

如果在觸發后,你懶得管,請使用 void。

void返回類型主要用在事件處理程序中,一種稱為“fire and forget”(觸發并忘記)的活動的方法。除了它之外,我們都應該盡可能是用Task,作為我們異步方法的返回值。

4.2、Task

你如果只是想知道執行的狀態,而不需要一個具體的返回結果時,請使用Task。

與void對比呢,Task可以使用await進行等待新線程執行完畢。而void不需要等待。

4.3、Task

當你添加async關鍵字后,需要返回一個將用于后續操作的對象,請使用Task。

主要有兩種方式獲取結果值,一個是使用Result屬性,一個是使用await。他們的區別在于:如果你使用的是Result,它帶有阻塞性,即在任務完成之前進行訪問讀取它,當前處于活動狀態的線程都會出現阻塞的情形,一直到結果值可用。所以,在絕大多數情況下,除非你有絕對的理由告訴自己,否則都應該使用await,而不是屬性Result來讀取結果值。

5、范例

再進行范例之前,先寫一個錯誤的異步方法,如下:

public static asyncTask SyncExec_3()

{

Proc();

}public static voidProc()

{for (int i = 0; i < 1000; i++)

{

Console.WriteLine(i);

}

}

View Code

由上圖截圖可以,在異步方法內,需要使用await關鍵字,否則方法會同步執行。

不是說你把一個方法標記成async這個方法就成了異步調用的方法了。async這個關鍵詞其實反而是可以省略的,這個關鍵詞存在的意義是為了向下兼容,為await提供上下文而已。

如下兩個方法其實是一樣的

Task DelayAndCalculate1(int a, intb)

{return Task.Delay(1000).ContinueWith(t => a +b);

}async Task DelayAndCalculate2(int a, intb)

{await Task.Delay(1000);return a +b;

}

View Code

那么,既然async是可以省略的,那么await可以省略嗎?答案是不可以,否則你的方法會被編譯警告,會成為一個同步方法。

其實真正重要的是await,有沒有async反而確實不重要。既然微軟提供了這樣的語法糖,所以建議大家在寫異步方法是加上async。

下面我們通過實例來說明異步編程,如下:

5.1、首先驗證異步編程是并行至執行的

usingSystem;usingSystem.Diagnostics;usingSystem.Threading.Tasks;namespaceConsoleCore

{classProgram

{static void Main(string[] args)

{

Stopwatch sw= newStopwatch();

sw.Start();

SyncExec();var result =SyncExec_2();

sw.Stop();

TimeSpan ts2=sw.Elapsed;

Console.WriteLine("sw總共花費{0}ms.", ts2.TotalMilliseconds);

Console.Read();

}public static voidProc()

{for (int i = 0; i < 1000; i++)

{

Console.WriteLine(i);

}

}#region 異步方法

public static async voidSyncExec()

{await Task.Run(() =>{

Proc();

});

}public static asyncTask SyncExec_2()

{await Task.Run(() =>{

Proc();

});

}#endregion}

}

View Code

我們在Console.Read();處加上斷點,運行如下:

結果:

如上所示,兩個計數程序幾乎同時執行,且在未執行完畢后,計時程序已經執行完畢了,從而說明異步程序是并行執行的,因此:異步程序可以提高效率。

5.2、返回值為Task的程序具體返回了什么?

public static asyncTask SyncExec_2()

{await Task.Run(() =>{

Proc();

});

}

View Code

通過調試,快速監視,得到如下消息:

其實返回值為Task的方法中什么也沒返回,但是我們確定接收到他的返回值,這點似乎是個矛盾點。根據VS快速監視截圖,我們發現我們接收的東西是一個上下文線程。

5.3、異步執行的順序

總結

以上是生活随笔為你收集整理的asp.net html5 异步,asp.net core 系列 5 项目实战之:NetCore 的 async 和 await(参考自:Microsoft教程)...的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 黄色网占 | 国产97超碰| 欧美混交群体交 | 富婆如狼似虎找黑人老外 | 久久精品国产亚洲AV无码麻豆 | 国产精品一级片在线观看 | 亚洲欧美bt | 欧美处女 | 日韩精品视频网 | 在线免费看91 | 在线观看无遮挡 | 国产精品99久久 | 天天曰天天射 | 久久精品亚洲一区二区 | 香蕉色网 | 134vcc影院免费观看 | 在线观看中文字幕av | 欧美日韩视频一区二区 | 91毛片视频| 香蕉视频A | 亚洲中文字幕无码专区 | 99视频导航 | 日本一区二区三区视频在线观看 | 亚洲精品成人无码 | 国产最新毛片 | 美女大黄网站 | 亚洲在线视频免费观看 | 日韩欧美在线观看视频 | 国产精品无码一区 | 精品成人一区二区三区久久精品 | 欧美日本韩国在线 | 青青草视频污 | 777午夜 | 狠狠爱免费视频 | 国产区网址 | 亚洲国产99| 超碰人人搞 | 天天av综合 | 免费看黄色片的网站 | 蜜桃久久精品成人无码av | 91jk制服白丝超短裙大长腿 | 精品人妻一区二 | 又黄又爽又刺激的视频 | 久久99国产精品久久99果冻传媒 | 午夜777 | 少妇厨房愉情理伦bd在线观看 | 国产做爰xxxⅹ久久久精华液 | 国产一区二区三区影视 | 亚洲午夜精品久久久久久浪潮 | 色偷偷888欧美精品久久久 | 欧美激情动态图 | 亚洲aⅴ在线 | 日韩五码 | 国产精品欧美激情在线播放 | 天天综合国产 | 色女孩综合网 | 久久调教 | 欧洲一级片 | 影音先锋中文字幕在线视频 | 亚欧美在线观看 | 美妇湿透娇羞紧窄迎合 | 日本色中色| 水果派解说av | 性高跟鞋xxxxhd国产电影 | 日本成人黄色片 | 久草免费看 | 污污免费视频 | 亚洲桃色av | 97免费人妻无码视频 | 99小视频 | 一区二区在线播放视频 | 国产精品日韩电影 | 26uuu国产精品视频 | 国产精品国产三级国产Av车上的 | 欧美三日本三级少妇三 | 久操免费视频 | 亚洲一区二区成人 | 亚洲欧美日韩系列 | 亚洲三级伦理 | 高贵麻麻被调教成玩物 | 日日撸夜夜操 | 国产精品国产精品国产专区不卡 | 久久久久久久久久久综合 | 人人草人人澡 | 日本三级aaa | 秋霞午夜伦理 | 五月天色婷婷综合 | 99精品免费视频 | 中文字幕人妻丝袜乱一区三区 | 国产精品久久av无码一区二区 | 免费国产小视频 | 操日本女人 | 日本裸体网站 | 国外成人免费视频 | 欧美放荡性医生videos | 中文字幕成人一区 | 狠狠干2021| 痴女扩张宫交脱垂重口小说 | 日本啪啪动态图 |