.NET實現(xiàn)異步編程async和await
await和async是.NET Framework4.5框架、C#5.0語法里面出現(xiàn)的,await和async是語法糖。
注意:
1、async出現(xiàn)在方法的聲明里面,任何一個方法都可以增加async。
2、await放在Task前面,async和await是成對出現(xiàn)的,只有async是沒有意義的,只有await是報錯的。
只有async是沒有意義的。
只有await是報錯的。
3、await 只能放在task前面,不推薦void返回值,使用Task來代替。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í)行主線程任務 await task; //這個回調的線程是不確定的:可能是主線程 可能是子線程 也可能是其他線程 Console.WriteLine($"NoReturn Sleep after await,ThreadId={Thread.CurrentThread.ManagedThreadId}"); }
到此這篇關于.NET實現(xiàn)異步編程async和await的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
asp.net(c#)開發(fā)中的文件上傳組件uploadify的使用方法(帶進度條)
在asp.net開發(fā)中,有很多可以上傳的組件模塊,利用HTML的File控件(uploadify)的上傳也是一種辦法,這里為大家介紹一下(uploadify)的一些使用方法2012-12-12Asp.net開發(fā)之webform圖片水印和圖片驗證碼的實現(xiàn)方法
這篇文章主要介紹了Asp.net開發(fā)之webform圖片水印和圖片驗證碼的實現(xiàn)方法,實現(xiàn)思路分為前后臺代碼和效果展示,非常不錯具有參考借鑒價值,需要的朋友可以參考下2016-10-10ASP.NET?MVC5實現(xiàn)文件上傳與地址變化處理(5)
這篇文章主要介紹了ASP.NET?MVC5實現(xiàn)文件上傳與地址變化處理,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2015-09-09aspxgridview CustomButtonCallback 不支持彈出消息提示解決方法
aspxgridveiw是devexpress的一個grid控件,使用起來還不錯,不能再 CustomButtonCallback 事件中使用response.write,具體的解決方法如下,感興趣的朋友可以參考下哈2013-06-06