亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#中Task.Yield的用途深入講解

2019-10-29 19:58:04
字體:
來源:轉載
供稿:網友

前言

最近在閱讀 .NET Threadpool starvation, and how queuing makes it worse 這篇博文時發現文中代碼中的一種 Task 用法之前從未見過,在網上看了一些資料后也是云里霧里不知其解,很是困擾。今天在程序員節的大好日子里終于想通了,于是寫下這篇隨筆分享給大家,也過過專心寫博客的癮。

這種從未見過的用法就是下面代碼中的 await Task.Yield() :

static async Task Process(){ await Task.Yield(); var tcs = new TaskCompletionSource<bool>(); Task.Run(() => {  Thread.Sleep(1000);  tcs.SetResult(true); }); tcs.Task.Wait();}

注:上面的代碼不是示例,只是因為這段代碼而初遇 await Task.Yield

Task.Yield 簡單來說就是創建時就已經完成的 Task ,或者說執行時間為0的 Task ,或者說是空任務,也就是在創建時就將 Task 的 IsCompeted 值設置為0。

那 await 一個空任務會怎樣?我們知道在 await 時會釋放當前線程,等所 await 的 Task 完成時會從線程池中申請新的線程繼續執行 await 之后的代碼,這本來是為了解決異步操作(比如IO操作)霸占線程實際卻用不到線程的問題,而 Task.Yield 卻產生了一個不僅沒有異步操作而且什么也不干的 Task ,不是吃飽了撐著嗎?

今天吃晚飯的時候終于想明白了——吃飽了沒有撐。Task.Yield 產生的空任務僅僅是為 await 做嫁衣,而真正的圖謀是借助 await 實現線程的切換,讓 await 之后的操作重新排隊從線程池中申請線程繼續執行。

這樣做有什么好處呢?

線程是非常非常寶貴的資源,千金難買一線程,而且有優先級,提高線程利用率的重要手段之一就是及時將線程分配給最需要的地方,而最奢侈的之一是讓一個優先級低執行時間長的操作一直占用著一個線程,await Task.Yield可以讓你巧妙地借助 await 的線程切換能力,將不太重要的比較耗時的操作放在新的線程(重新排隊從線程池中申請到的線程)中執行。打個比方,很多人排隊在外婆家就餐,你來的時候比較巧,正好有位置,但你本來就不著急肚子也不太餓準備慢慢吃慢慢聊,而排隊的人當中有些人很餓很著急吃完還有事,這時你如果先點幾個招牌菜解解饞,然后將座位讓出來,重新排隊,并且排隊的人當中像你這樣的都這么做,那些排隊中心急如焚的人真是是幸福感爆棚,外婆家的老板也笑彎了腰。你讓出座位重新排隊的愛心行為就是 await Task.Yield() 。

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VEVB武林網的支持。


注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美亚洲一区在线| 欧美一乱一性一交一视频| 91亚洲精品久久久久久久久久久久| 91色中文字幕| 久久久精品国产亚洲| 中文字幕日韩av| 亚洲国产高潮在线观看| 中文字幕精品视频| 91精品视频在线免费观看| 51精品国产黑色丝袜高跟鞋| 色综合久久悠悠| 亚洲精品自产拍| 欧美老女人在线视频| 亚洲色图校园春色| 久久久久久久久91| 国产97在线播放| 日韩电视剧免费观看网站| 91久久久亚洲精品| 日韩亚洲精品视频| 日本中文字幕久久看| 亚洲精品中文字幕女同| 日本一区二区三区在线播放| 国产精品男人的天堂| www国产精品视频| 97涩涩爰在线观看亚洲| 国产区精品在线观看| 久久精品久久精品亚洲人| 国产欧美日韩91| 日韩精品视频免费专区在线播放| 精品视频在线观看日韩| 亚洲第一av在线| 亚洲精品影视在线观看| 欧美性xxxx极品高清hd直播| 欧美激情中文网| 在线激情影院一区| 欧美激情区在线播放| 色www亚洲国产张柏芝| 中文字幕精品视频| 欧美怡红院视频一区二区三区| 色狠狠av一区二区三区香蕉蜜桃| 亚洲一区二区少妇| 国产精品欧美亚洲777777| 国产婷婷成人久久av免费高清| 91亚洲一区精品| 国产亚洲一区精品| www.日韩.com| 亚洲国产精品人人爽夜夜爽| www.日韩视频| 777国产偷窥盗摄精品视频| 亚洲精品wwwww| 国产精品久久久久久久久久ktv| 亚洲aⅴ日韩av电影在线观看| 丰满岳妇乱一区二区三区| 国产这里只有精品| 日本韩国欧美精品大片卡二| 久久偷看各类女兵18女厕嘘嘘| 欧美福利在线观看| 91精品久久久久久久久不口人| 精品视频一区在线视频| 少妇高潮 亚洲精品| 国产精品福利无圣光在线一区| 亚洲欧美中文字幕在线一区| 欧美高跟鞋交xxxxxhd| 国产精品白嫩美女在线观看| 日韩成人免费视频| 国产精品美乳在线观看| 亚洲色图15p| 日韩av网站导航| 国产精品第七影院| 亚洲国产另类久久精品| 国产精品入口免费视频一| 国产午夜精品理论片a级探花| 国产男女猛烈无遮挡91| 日韩三级成人av网| 欧美日韩精品在线观看| 国产亚洲一区二区精品| 亚洲九九九在线观看| 国产精自产拍久久久久久| 韩国精品久久久999| 国产91成人video| 91精品国产91久久| 日韩av电影国产| 性欧美在线看片a免费观看| 亚洲天天在线日亚洲洲精| 国产成人精品综合久久久| 成人免费视频网址| 亚洲电影天堂av| 日本欧美爱爱爱| 国产亚洲精品美女久久久| 98精品在线视频| 欧美精品激情blacked18| 亚洲精品ady| 日韩av影院在线观看| 精品国产电影一区| 久久中文字幕在线| 亚洲大尺度美女在线| 国产在线视频欧美| 91成人天堂久久成人| 97精品国产97久久久久久春色| 一区二区三区久久精品| 国产精品福利网| 国产精品444| 2018日韩中文字幕| 欧美xxxx做受欧美| 亚洲女人初尝黑人巨大| 中文字幕日韩在线观看| 久久久久久12| 日韩成人xxxx| 国产欧美精品xxxx另类| 亚洲精品98久久久久久中文字幕| 91精品国产电影| 日韩欧美中文在线| 久久中文字幕视频| 亚洲国产欧美一区| 欧美第一页在线| 欧美激情videoshd| 国产女精品视频网站免费| 一区二区三区亚洲| 91色琪琪电影亚洲精品久久| 免费成人高清视频| 国产精品三级美女白浆呻吟| 久久精品国产v日韩v亚洲| 国产成+人+综合+亚洲欧洲| 亚洲第一中文字幕| 97成人精品区在线播放| 亚洲第一男人av| 97免费中文视频在线观看| 久久夜色撩人精品| 日韩精品在线观看视频| 中文字幕欧美日韩| 欧美成人三级视频网站| 中文字幕精品一区久久久久| 国产999在线观看| 久久影视电视剧免费网站| xxxxx成人.com| 国产精品女人久久久久久| 欧美日韩在线视频首页| 久久精品免费播放| 国产精品高潮粉嫩av| 欧美激情一二区| 91深夜福利视频| 欧美高跟鞋交xxxxhd| 性欧美视频videos6一9| 91产国在线观看动作片喷水| 日韩激情视频在线播放| 亚洲精品视频播放| 亚洲人成在线电影| 国产精品盗摄久久久| 亚洲精品白浆高清久久久久久| 久久男人av资源网站| 日韩动漫免费观看电视剧高清| 国产不卡在线观看| 精品国产一区久久久| 欧美孕妇与黑人孕交| 亚洲国产日韩欧美综合久久| 成人网在线观看| 国产精品视频自在线| 国产成人精品久久二区二区| 亚洲电影免费观看高清完整版在线观看| 全亚洲最色的网站在线观看| 欧美高清激情视频| 91av视频在线观看| 精品成人69xx.xyz| 亚洲国产精品va在线|