|
不管是使用yield或借助第三方類庫來簡化異步編程,或多或少總是感覺不那么正統,有點hack的感覺。這種感覺在實驗階段倒還可以,要是用在產品中總有點擔心,即使這些類庫來自權威的第三方,我不知道大家有沒有跟我同樣的感覺。那么這個時候我們就會想,如果在語言中直接能提供這種機制該多好呢。
F#的異步工作流
在Visual Studio 2010中,新包含了一種語言:F#。F#的一大特性就是異步計算。能讓你用同步的方式編寫異步的代碼,不用使用AsyncCallback回調將一個方法分為兩段,也不用注冊異步完成事件。
F#是一個強類型的函數式編程語言,現在是2.0版本,在VS2010中正式作為first-class語言出現。其主要設計者是Don Syme,同是.NET中的泛型的主要設計者之一。
我們來看看前面幾篇文章中都包含的那個示例使用F#的代碼將是怎樣:
let asyncDownload (url:string) =
async{
let req = WebRequest.Create(url)
let! resp = req.AsyncGetResponse()
use stream
= resp.GetResponseStream()
let reader = new StreamReader(stream)
return reader.ReadToEnd()
}
NET技術:.NET中的異步編程:使用F#簡化異步編程,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。