一起谈.NET技术,预览:Visual Basic与C#中的异步语法

  在最近的博客文章中,Visual Basic团队发布了一条简单的消息,声称在Visual Basic和C#中将会增加异步编程语法。两种语言新增的Async和Await关键字的实现将基于.NET 4.0中的任务并行库(Task Parallel Library,TPL)。

  Async关键字用于方法,它将启用方法的异步行为。在这个方法中,Await关键字将暂停当前的执行流程,直到当前异步行为结束为止。线程不会因此而暂停,它可以用于处理其他工作,例如UI事件。一旦异步行为结束后,方法的将继续执行余下部分。

  以下是一个典型的WPF或WinForm应用程序中的“搜索”功能:


Private Sub SearchButton_Click
(ByVal sender As Object, ByVal e As RoutedEventArgs)
Handles SearchButton.Click
ProgressBar1.Visibility = Visible
SearchButton.IsEnabled = False
Dim dt As DataTable = Nothing
Dim worker As New BackgroundWorker
AddHandler worker.DoWork, Sub()
PrepareSearch()
worker.ReportProgress(50)
dt = SearchDatabase() End Sub
AddHandler worker.RunWorkerCompleted, Sub()
ResultsGrid.DataContext = dt
ProgressBar1.Visibility = Visible
SearchButton.IsEnabled = True
End Sub
AddHandler worker.ProgressChanged,
Function(a As Object, b As ProgressChangedEventArgs) _
ProgressBar1.Value = b.ProgressPercentage
worker.RunWorkerAsync()End Sub

  根据博文所写,Async VB的版本大约如下所示:


Private Async Sub SearchButton_Click
(ByVal sender As Object, ByVal e As RoutedEventArgs)
Handles SearchButton.Click
ProgressBar1.Visibility = Visible
SearchButton.IsEnabled = False
Await PrepareSearch() ProgressBar1.Value = 50
ResultsGrid.DataContext = Await SearchDatabaseAsync()
ProgressBar1.Visibility = Visible
SearchButton.IsEnabled = TrueEnd Sub

  据称,C#和VB都会享有相同的设计、关键字及单元测试。因此C#版本看上去应该是这样的:


private async void SearchButton_Click
(object sender, RoutedEventArgs e){
ProgressBar1.Visibility = Visibility.Visible;
SearchButton.IsEnabled = false;
await PrepareSearchAsync();
ProgressBar1.Value = 50;
ResultsGrid.DataContext = await SearchDatabaseAsync();
ProgressBar1.Visibility = Visibility.Visible;
SearchButton.IsEnabled = true;}

  在这些示例中,Async版本会返回一个Task对象。Await关键字后面的代码会形成一个回调函数,在Task完毕后执行。这里您可能想到CCR类库使用C#的“yield return”来创建continuation的做法。这不是巧合,事实上“await”重用了许多“yield return”代码。于是,VB团队也趁此机会,终于完成了它们的迭代器功能。

  我们相信在PDC中将会听到这方面更多信息。

  译者注:PDC微软最高级的专业技术人员会议。前几天在PDC 2010会议上,Anders Hejlsberg发表了一场名为“C#与Visual Basic的未来”的演说,谈论了未来C#和VB中最为重要的两个特性:“异步(Async)”及“编译器即服务(Compiler as a Service)”。国内社区的老赵对这场演讲进行了详细的总结,目前已经完成了关于异步编程的部分。

  [英文出处]:Sneak Peak: Asynchronous Syntax for Visual Basic and C#

时间: 2024-09-20 08:51:12

一起谈.NET技术,预览:Visual Basic与C#中的异步语法的相关文章

预览:Visual Basic与C#中的异步语法

在最近的博客文章中,Visual Basic团队发布了一条简单的消息,声称在Visual Basic和C#中将会增加异步编程语法.两种语言新增的Async和Await关键字的实现将基于.NET 4.0中的任务并行库(Task Parallel Library,TPL). Async关键字用于方法,它将启用方法的异步行为.在这个方法中,Await关键字将暂停当前的执行流程,直到当前异步行为结束为止.线程不会因此而暂停,它可以用于处理其他工作,例如UI事件.一旦异步行为结束后,方法的将继续执行余下部

一起谈.NET技术,微软缘何认为VB与C#需要异步语法

在过去几年间,多线程编程已经成为了一个热门话题.虽然我们长久以来一直都希望能有高速响应的用户界面,但实现这个愿望的工具却迟迟不见踪迹.对于大多数框架(包括.NET程序员所使用的那些框架)来说,对用户界面的更新仍然局限于单独一个线程,同时,硬件制造商已经转向了多核来代替更快的CPU. C#与VB一开始提供了非常简单的并发支持,这是通过对监视器与委托使用lock/SyncLock关键字来实现的,异步程序库通过这两个关键字实现异步编程.在随后的几个版本中,我们并没有看到这两种语言在异步领域有任何进展,

Office2010技术预览版现身BT下载网站

Office 2010技术预览版截屏提前 曝光 北京时间5月19日上午消息,据国外媒体报道,对人气颇高的文件共享网站的搜索显示,微软Office 2010技术预览版已泄露到互联网上. Office 2010上周六"现身"BT下载网站.Mininova.org和海盗湾网站上都出现了32位和64位版本的Office 2010.跟帖 网友证实,该版本是技术预览版,这表明它尽管能够运行,但不够稳定. 截至美国东部时间周一早上7时,Mininova.org上有逾1100个32位版Office 2

新版ASP.NET会在Visual Studio2015社区技术预览中呈现先行版

摘要: 微软云计算和企业部门负责人.ASP.NET 之父,同时也是微软开源的主推手 Scott Guthrie,在他的博客发布了 ASP.NET 5. 本次发布的新版 ASP.NET 会在刚上线的 Visual Studio 2015 社区技术预览(C 微软云计算和企业部门负责人.ASP.NET 之父,同时也是微软开源的主推手 Scott Guthrie,在他的博客发布了 ASP.NET 5. 本次发布的新版 ASP.NET 会在刚上线的 Visual Studio 2015 社区技术预览(CT

微软云平台Azure防恶意软件MEP技术预览版发布

微软发布了为Windows http://www.aliyun.com/zixun/aggregation/13357.html">Azure云平台的终端安全保护的测试预览版,目的是允许开发人员和管理员能够为他们的Azure虚拟机增加恶意软件防护. http://www.microsoft.com/download/en/details.aspx?id=29209 微软为Windows Azure提供的MEP技术预览版对所有人免费下载,可安装于Azure SDK1.K或更高的版本.MEP反

微软Office2016技术预览版安装图文教程

  今天微软放出了Office2016技术预览版安装包,这种安装包和正式版区别不小,安装操作也有所不同.解压后,发现里面有一个"OfficePreview"文件和"Files"文件夹,此时双击"OfficePreview"文件开始安装.下面小编就为大家带来微软Office2016技术预览版安装图文教程,一起来看看! ▲ 直接打开"OfficePreview",不要通过"Files"文件夹中的文件进行安装 ▲

office2016技术预览版内测计划资格申请方法图文介绍

  微软公布office2016技术预览版内测计划,并给出了申请参与内测计划的地址.只不过该计划面向IT专业人员.开发者等人群,并且是企业版.但英文界面给想试用这一版本的某些中国用户造成了一定麻烦. office2016技术预览版内测计划资格申请方法: 1.进入微软Connect申请页面 2.登录微软账户后,会出现申请表页面 填写内容从上到下:公司名.本人名.本人姓.电子邮件地址.国家.公司员工数量.公司主营业务.是否为微软合作伙伴(是不是都可以).是否愿意被邀请参与未来的Office预发行版本

office2016技术预览版下载安装流程图文详解

  office2016技术预览版安装包解压后,发现里面有一个"OfficePreview"文件和"Files"文件夹,此时双击"OfficePreview"文件开始安装. 直接打开"OfficePreview",不要通过"Files"文件夹中的文件进行安装 如果你安装过之前的2014年10月的Office2016预览版,直接点击"Update Now"进行升级安装;如果没安装过10月的

Win9技术预览版有什么特点

  Win9技术预览版下载是很多网友想知道的吧,不过目前Win9技术预览版下载地址还没出来,下面大家先来看看有关于Win9技术预览版的相关解析吧.小编也会第一时间为大家带来下载地址. 1.全新的开始菜单:经典开始菜单和Metro开始屏幕两者在一起了.不过右侧看上去更像是一部Windows Phone.另外我们在左侧经典开始菜单部分中也看到了Metro应用Games.用户登录功能也被安置在了开始菜单的左上方,关机按钮也一起搬过来了.那么Charms边栏去哪儿了呢?大家可以看到某些应用的图标已经变成