編輯的話

思考非同步

Michael Desmond

 

本月 MSDN Magazine 探索強大的新非同步程式設計功能即將 C#、 Visual Basic 和 Microsoft 的下一個版本。NET Framework。今天透過提供 Visual Studio 的非同步 CTP,新功能可協助解決新興最頭痛的問題的其中一個在多核心系統的時代,定域機組運算: 執行緒會封鎖等待中的物件時所產生的負面影響想要在另一個執行緒完成傳回從遠端伺服器或計算的資料。

我跟與 Mads Torgersen,其中一個非同步程式設計在本月的功能和主體的程式管理員 C# 和 Visual Basic 語言小組在 Microsoft 中的作者。他備忘稿,幾乎每一個應用程式變得連接,延遲新興的 「 中央問題程式碼周圍。"所以為什麼我們看到非同步支援。NET Framework 4?

"在點位置的功能集已鎖定的發行版本中,我們沒有在這類的語言功能應該看起來,嚴重學會 」 說 Torgersen。「 然而,F# 運送在同一時間與最後一大堆人心我們非同步的語言功能。我們的出貨 4 C# 和 Visual Basic 10 時,我們已看到裝載該非同步應該在行中下, 一步,而且它是真正需要的語言層級要解決問題的辨識項。"

Torgersen 說明以相當簡單的核心實作方法。解決方案就是 「 暫停和繼續 」 在空中飛行的程式碼執行。而不是截斷上產生的程式碼到不同的位元,小組會用來 「 parachute 中"至適當的地方,在使用者的程式碼中的一種技術。方法提供的優點保有原始來源程式碼的結構,而難以使用爭論的結果。

「 我們有相當小錯誤尾端的不一致,」 Torgersen 說。

非同步的發展

非同步程式設計中的新功能 C# 和 Visual Basic 標示最新的一系列的重要進化的步驟中,Microsoft 的頭號 managed 程式設計語言。過去幾年來,語言已方面的功能和動態的程式設計,而是最最近非同步程式設計。如說明 Lisa Feigenbaum,Visual Studio 的群組中,在 Microsoft,專案經理,做了加入這些功能 「 最佳調整每一種語言的樣式。 」 的方式

」,例如動態語言 interop 加入 Visual Basic 藉由運用已經屬於語言的晚期繫結建構。此外,在 C# 中我們會加入靜態型別,稱為動態,」 Feigenbaum 說。「 Lambda 加入 Visual Basic 時,功能性程式設計,說,我們使用熟悉的關鍵字語法 Sub/End Sub 和函式/結束函式。不過,如 C#,也就是較不詳細資訊,我們用過的符號來設計與語法 ' = >'。設計說明每種語言,保留其原始的字元,並保留給開發人員熟悉的成長]。

將重大新功能的程式語言不是件小事。Feigenbaum 會描述語言設計為 「 很保守過程中,[強調功能並不會加入直到它們完全正確。如果是非同步,提出的最後一個版本的基礎上建立的新功能。NET Framework。

「 Visual Studio vNext 非同步設計,例如建置相加的任務類型。NET Framework 中。NET 4"說 Feigenbaum。"使用的基礎、 以及其他要加入的下一個版本中的架構支援,我們最終可以設計了極為簡潔的語言語法,我們的 Visual Studio vNext 中的非同步滿意。"

現在,開發人員可以使用非同步 CTP 熟悉即將 C# 和 Visual Basic 的新資源。在此同時,Torgersen 表示開發人員可以執行的非同步世紀的準備一件事: 成為工作為基礎。

"即使了。NET 4,任務類型是多好貨幣的非同步活動比舊有的模式。您仍然必須是 [回撥為基礎],因為您不需要的語言支援,但在更簡潔的方式。而需遵循的工作為基礎的新模式您簽章將可以讓您很順利時您可以使用那些只是一個簡單的 '著您呢 !' 運算式的一天。