.NET中的异步编程:使用F#简化异步编程

  不管是使用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#简化异步编程,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。