中文字幕日韩一区二区_国产一区二区av_国产毛片av_久久久久国产一区_色婷婷电影_国产一区二区精品

微軟緣何認(rèn)為VB與C#需要異步語法

  在過去幾年間,多線程編程已經(jīng)成為了一個熱門話題。雖然我們長久以來一直都希望能有高速響應(yīng)的用戶界面,但實現(xiàn)這個愿望的工具卻遲遲不見蹤跡。對于大多數(shù)框架(包括.NET程序員所使用的那些框架)來說,對用戶界面的更新仍然局限于單獨一個線程,同時,硬件制造商已經(jīng)轉(zhuǎn)向了多核來代替更快的CPU。

  C#與VB一開始提供了非常簡單的并發(fā)支持,這是通過對監(jiān)視器與委托使用lock/SyncLock關(guān)鍵字來實現(xiàn)的,異步程序庫通過這兩個關(guān)鍵字實現(xiàn)異步編程。在隨后的幾個版本中,我們并沒有看到這兩種語言在異步領(lǐng)域有任何進展,微軟的精力都放在其他領(lǐng)域上了。隨著.NET 4.0的到來,情況有了很大的變化。.NET 4.0引入了3個新的程序庫:Task Parallel Library(TPL)、Parallel LINQ以及Coordination Data Structures(CDS)。這些程序庫構(gòu)建在增強的語法之上,如lambda、closure以及LINQ,極大簡化了多線程開發(fā)工作。但這些庫也不是十全十美的。Parallel LINQ看起來沒什么問題,而對TPL的異步調(diào)用依舊充滿了壞味道,有時還會出錯。

  如今的異步模式的一個大問題在于他們組合的不好。每個異步操作都需要通過回調(diào)鏈接到下一個。但回調(diào)是無法組合的,每一步都是獨立的函數(shù),無法劃分到常見的編碼結(jié)構(gòu)中,如循環(huán)、using或是try——catch塊。

  結(jié)果,大多數(shù)開發(fā)者實際上并沒有使用異步模式。他們轉(zhuǎn)向了并發(fā)的多線程,依賴于后臺線程和手工同步。但這種方式也存在著問題。由于將線程浪費在了阻塞的I/O上,因此你失去了操作系統(tǒng)所提供的性能與可伸縮性的優(yōu)勢,比如說I/O Completion Ports,更不必說調(diào)度大量線程給內(nèi)存帶來的壓力了。此外,你還可以使用單獨一個線程和循環(huán),這意味著每次I/O操作都得等到之前的操作完成后才能開始。

  也就是說,我們按照這種方式編寫代碼已經(jīng)有很長一段時間了,在大多數(shù)情況下都沒什么問題。通常,計算機都有足夠的速度和內(nèi)存來處理對線程的草率使用,這使得將數(shù)據(jù)編排到UI線程變得不那么困難。那到底有什么變化呢?

  有三件事:

  首先是基礎(chǔ)項目。Async CTP并非憑空出現(xiàn)的,它構(gòu)建在之前的大量研究與產(chǎn)品項目基礎(chǔ)之上。這包括了異步語言Axum、Task Parallel Library(TPL)、Reactive Extensions(Rx)以及F#的異步工作流。當(dāng)這些工作全部完成后,VB/C#中的異步語法將成為下一步工作。

  其次是參與的人。與很多研究項目會雇傭畢業(yè)生不同,Somasegar打造了一個由5個天才項目經(jīng)理所構(gòu)成的團隊,他們負(fù)責(zé)構(gòu)建語法,以此證明異步編程可以像同步編程一樣簡單。這些開發(fā)者是Avner Aharoni、Mads Torgersen、Stephen Toub、Alex Turner以及Lucian Wischik,他們都是.NET領(lǐng)域的名家。沒有他們的協(xié)作與奉獻,CTP是不可能出現(xiàn)的。

  最后是Silverlight。除了是Flash的替代者以外,Silverlight還是微軟移動戰(zhàn)略中的重要棋子。除非開發(fā)游戲,否則不使用Silverlight是沒法在Windows Phone 7上編寫應(yīng)用的。Sivlerlight并不支持異步的I/O操作。曾嘗試將WPF代碼移植到Silverlight上的開發(fā)者知道,Sivlerlight是不支持異步I/O操作的。你別無選擇,只能使用異步模式。Lucian在其“Async CTP簡介”一文中闡釋了這么做是多么的復(fù)雜。

  當(dāng)然了,這可能意味著C#與VB應(yīng)該支持異步語法。如果這在C# 5/VB 11中真的發(fā)生了,那么一旦發(fā)現(xiàn)語義不正確就沒機會再移除掉了。這需要以犧牲其他特性作為代價,從“編譯器即服務(wù)(compiler-as-a-service)”到各種細(xì)小的特性。

  查看英文原文:Why Microsoft Believes that VB and C# Need an Asynchronous Syntax

NET技術(shù)微軟緣何認(rèn)為VB與C#需要異步語法,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 男女羞羞视频在线看 | 三级免费 | 国产精品毛片一区二区在线看 | 久久国产精品亚洲 | 日韩一区二区三区视频 | 欧美日韩亚洲国产综合 | 国产精品久久久久久久久久妞妞 | 麻豆毛片 | 免费在线色 | 日韩欧美在线播放 | 久久久一区二区三区四区 | 91大神新作在线观看 | 黄色一级大片在线免费看产 | 精品国产一级片 | 在线免费观看成年人视频 | 91极品视频| 国产一区二区三区四区 | 人人人干 | 欧美a级成人淫片免费看 | 色综合视频 | 久久激情视频 | 亚洲一区二区视频在线观看 | 天天操网 | 在线免费视频一区 | 亚洲欧美日韩系列 | 久久综合一区 | 日本一区二区高清不卡 | 精品国产91乱码一区二区三区 | 99riav国产一区二区三区 | 久久久久久国产精品免费免费狐狸 | 综合久久综合久久 | 欧美亚洲综合久久 | 欧美一级淫片免费视频黄 | 中文字幕亚洲精品 | 伊人精品在线 | 精品国产乱码一区二区三 | 国产在线第一页 | 欧美一二三四成人免费视频 | 国产精品99久久久久久人 | 亚洲国产aⅴ精品一区二区 免费观看av | 91成人在线视频 |