博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
.NET中的异步编程“.NET技术”:使用F#简化异步编程
阅读量:6973 次
发布时间:2019-06-27

本文共 765 字,大约阅读时间需要 2 分钟。

  不管是使用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

转载地址:http://jgfsl.baihongyu.com/

你可能感兴趣的文章
Docker学习笔记-(1)常用命令
查看>>
android NDK 学习笔记(1)
查看>>
tengine无法解析ssi报错 Nginx: unsafe URI detected while sending response
查看>>
关闭浏览器时退出登录
查看>>
《代码大全》阅读笔记-30-编程工具
查看>>
在 Visual Studio 中调试 XAML 设计时异常
查看>>
nginx前端负载,后端apache获取真实IP设置
查看>>
关于Repository、Autofac、DbContext简单例子
查看>>
CF1155E Guess the Root
查看>>
SSM框架的jar使用操作
查看>>
最近用到mysql和mybatis结合常用的知识点坐下整理
查看>>
redis入侵
查看>>
ArcGIS Server发布服务,报错001270
查看>>
连续子数组的最大和
查看>>
windows7下cmd命令窗口没有滚动条的解救方法
查看>>
查看oracle数据库的连接数以及用户
查看>>
某公司git代码管理,到如何上线
查看>>
ubuntu 16.04安装mips交叉编译
查看>>
MyEclipse查看Struts2源码及Javadoc文档
查看>>
C语言基础学习day03
查看>>