.NET中的异步编程“.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()
  }

  很短小精悍吧(实际上这段代码可以更短,但为了说明异步的编写方式,我没有使用那些看起来有点怪的语法)。下面我们来解读一下这段代码,希望本文结束后你能对F#中的异步有点初步的印象。

  F#中用let定义一个值,比如:

上海网站建设div class="cnblogs_code">


let value = 5

时间: 2024-10-07 01:15:51

.NET中的异步编程“.NET技术”:使用F#简化异步编程的相关文章

.NET中的“.NET研究”异步编程:使用F#简化异步编程

不管是使用yield或借助第三方类库来简化异步编程,或多或少总是感觉不那么正统,有点hack的感觉.这种感觉在实验阶段倒还可以,要是用在产品中总有点担心,即使这些类库来自权威的第三方,我不知道大家有没有跟我同样的感觉.那么这个时候我们就会想,如果在语言中直接能提供这种机制该多好呢. F#的异步工作流 在Visual Studio 2010中,新包含了一种语言:F#.F#的一大特性就是异步计算.能让你用同步的方式编写异步的代码,不用使用AsyncCallback回调将一个方法分为两段,也不用注册异

一起谈.NET技术,.NET中的异步编程(二)- 传统的异步编程

在上一篇文章中,我们从构建响应灵敏的界面以及构建高可伸缩性的服务应用来讨论我们为什么需要异步编程,异步编程能给我们带来哪些好处.那么知道了好处,我们就开始吧,但是在异步编程这个方面,说总是比做简单.套用那句不是名言的名言:编写异步程序是困难的,编写可靠的异步程序尤其困难.因为异步程序非常难以编写,而且非常容易出错,很多基本的构造元素在异步编程中都无法使用,这让我们这些开发人员更愿意编写同步的代码,虽然我们知道有些地方真的应该使用异步. 如何实现异步 对于很多人来说,异步就是使用后台线程运行耗时的

一起谈.NET技术,.NET中的异步编程(一)-为什么需要异步

在2010年的PDC上,微软发布了Visual Studio Async CTP,大大地降低了异步编程的难度,让我们可以像写同步的方法那样去编写异步代码.Async CTP也在社区里掀起了不小的波澜.在这之后,我也学习了一段时间,这个系列会将这段时间的学习作个梳理. 好了,下面进入本文的正题. 为什么需要异步编程 既然同步的写法更自然简单,异步的代码(传统的)不好写,还容易出错,那我们为什么需要去编写异步的代码呢?微软还要费这么大劲投入对Async CTP的开发呢?这其中肯定有一些原因. 快速响

c#中异步编程模型变迁及如何使用异步

大家在编程过程中都会用到一些异步编程的情况.在c#的BCL中,很多api都提供了异步方法,初学者可能对各种不同异步方法的使用感到迷惑,本文主要为大家梳理一下异步方法的变迁以及如何使用异步方法. BeginXXX,EndXXX模式 在.Net Framework 2.0中,最常见的方法是BeginXXX,和EndXXX这样的方法来搭配使用.这种模式可以概括为方法+回调方法模式或者称为InvokeMethod+EventHandler模式. 这种模型的基本流程是:     调用BeginXXX方法 

.N“.NET研究”ET中的异步编程(二)- 传统的异步编程

在上一篇文章中,我们从构建响应灵敏的界面以及构建高可伸缩性的服务应用来讨论我们为什么需要异步编程,异步编程能给我们带来哪些好处.那么知道了好处,我们就开始吧,但是在异步编程上海徐汇企业网站制作这个方面,说总是比做简单.套用那句不是名言的名言:编写异步程序是困难的,编写可靠的异步程序尤其困难.因为异步程序非常难以编写,而且非常容易出错,很多基本的构造元素在异步编程中都无法使用,这让我们这些开发人员更愿意编写同步的代码,虽然我们知道有些地方真的应该使用异步. 如何实现异步 对于很多人来说,异步就是使

.“.NET研究”NET中的异步编程(一)-为什么需要异步

在2010年的PDC上,微软发布了Visual Studio Async CTP,大大地降低了异步编程的难度,让我们可以像写同步的方法那样去编写异步代码.Async CTP也在社区里掀起了不小的波澜.在这之后,我也学习了一段时间,这个系列会将这段时间的学习作个梳理. 好了,下面进入本文的正题. 为什么需要异步编程 既然同步的写法更自然简单,异步的代码(传统上海企业网站制作的)不好写,还容易出错,那我们为什么需要去编写异步的代码呢?微软还要费这么大劲投入对Async CTP的开发呢?这其中肯定有一

在AIX Version 5.3中使用Java和PHP技术进行开发: 第6部分

第 6 部分 为 Java 业务应用程序构建 PHP Web 接口 简介:使用在本系列文章(请参见参考资料)前面的教程中所创建的数据库,为 Java 业务应 用程序构建 PHP Web 接口.这个 PHP Web 接口可以收集来自用户的信息,并将会话数据发送到 Java 业 务应用程序,以进行相应的处理和响应. 开始之前 本教程面向那些希望在 Web 应用程序开发中快速集成 PHP 和 Java 的 AIX 5.3 开发人 员.在本教程中,您将完成一个解决方案的构建过程,其中使用 PHP 作为前

在AIX Version 5.3中使用Java和PHP技术进行开发,第4部分

第 4 部分: 构建 Java 业务应用程序 简介:本系列文章共有六个部分,本文是其中的第 4 部分,将向您介绍如何在运行 IBM AIX 5.3 操作系统的 pSeries 系统中将 Java 业务应用程序和数据库部署为 Java Web 服务. 开始之前 本教程面向那些希望在自己的Web应用程序开发中快速集成 PHP和Java的 AIX 5.3开发人员.读者应该具有基本的Java编程能力,并对基本的Web开发环境有所了解. 关于本系列 PHP是一种非常优秀的Web开发语言,而在业务应用程序开

在AIX Version 5.3中使用Java和PHP技术进行开发:第2部分

第2部分:搭建一个基于 Java 的商业应用程序 开始之前 本教程面向那些希望在自己的Web应用程序开发中快速集成 PHP和Java的 AIX 5.3开发人员.读者应该具有基本的Java编程能力,并对基本的Web开发环境有所了解. 关于本系列 PHP是一种非常优秀的Web开发语言,而在业务应用程序开发方面,Java 技术十分流行 .因此,为了在AIX Version 5.3 操作系统上充分利用每种语言的优势,专门开发了PHP Java Bridge. 本系列文章向 AIX 5.3开发人员介绍了如