.NET實(shí)現(xiàn)異步編程async和await
await和async是.NET Framework4.5框架、C#5.0語(yǔ)法里面出現(xiàn)的,await和async是語(yǔ)法糖。
注意:
1、async出現(xiàn)在方法的聲明里面,任何一個(gè)方法都可以增加async。
2、await放在Task前面,async和await是成對(duì)出現(xiàn)的,只有async是沒(méi)有意義的,只有await是報(bào)錯(cuò)的。
只有async是沒(méi)有意義的。
只有await是報(bào)錯(cuò)的。
3、await 只能放在task前面,不推薦void返回值,使用Task來(lái)代替。Task和Task<T>能夠使用await, Task.WhenAny, Task.WhenAll等方式組合使用。Async Void 不行
private static async Task Return() { //主線程執(zhí)行 Console.WriteLine($"NoReturn Sleep before await,ThreadId={Thread.CurrentThread.ManagedThreadId}"); TaskFactory taskFactory = new TaskFactory(); Task task = taskFactory.StartNew(() => { Console.WriteLine($"NoReturn Sleep before,ThreadId={Thread.CurrentThread.ManagedThreadId}"); Thread.Sleep(3000); Console.WriteLine($"NoReturn Sleep after,ThreadId={Thread.CurrentThread.ManagedThreadId}"); }); //主線程到這里就返回了,執(zhí)行主線程任務(wù) await task; //這個(gè)回調(diào)的線程是不確定的:可能是主線程 可能是子線程 也可能是其他線程 Console.WriteLine($"NoReturn Sleep after await,ThreadId={Thread.CurrentThread.ManagedThreadId}"); }
到此這篇關(guān)于.NET實(shí)現(xiàn)異步編程async和await的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
asp.net(c#)開發(fā)中的文件上傳組件uploadify的使用方法(帶進(jìn)度條)
在asp.net開發(fā)中,有很多可以上傳的組件模塊,利用HTML的File控件(uploadify)的上傳也是一種辦法,這里為大家介紹一下(uploadify)的一些使用方法2012-12-12Asp.net開發(fā)之webform圖片水印和圖片驗(yàn)證碼的實(shí)現(xiàn)方法
這篇文章主要介紹了Asp.net開發(fā)之webform圖片水印和圖片驗(yàn)證碼的實(shí)現(xiàn)方法,實(shí)現(xiàn)思路分為前后臺(tái)代碼和效果展示,非常不錯(cuò)具有參考借鑒價(jià)值,需要的朋友可以參考下2016-10-10asp.net core配置文件加載過(guò)程的深入了解
這篇文章主要給大家介紹了關(guān)于asp.net core配置文件加載過(guò)程的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2018-12-12ASP.NET?MVC5實(shí)現(xiàn)文件上傳與地址變化處理(5)
這篇文章主要介紹了ASP.NET?MVC5實(shí)現(xiàn)文件上傳與地址變化處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2015-09-09aspxgridview CustomButtonCallback 不支持彈出消息提示解決方法
aspxgridveiw是devexpress的一個(gè)grid控件,使用起來(lái)還不錯(cuò),不能再 CustomButtonCallback 事件中使用response.write,具體的解決方法如下,感興趣的朋友可以參考下哈2013-06-06Asp.net的服務(wù)器推技術(shù) (Server Push)
在以往的和服務(wù)器端通信技術(shù)中,我們多數(shù)使用的是AJAX輪詢式訪問(wèn),也就是在Javascript中控制時(shí)間間隔,然后每隔一段時(shí)間就訪問(wèn)一次服務(wù)器,然后獲得數(shù)據(jù)或通知。但是這種輪詢方式的訪問(wèn)有90%是在做無(wú)用功。2010-01-01