`
deepfuture
  • 浏览: 4412622 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80134
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70355
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103602
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:286588
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15056
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67794
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32292
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46075
社区版块
存档分类
最新评论

VB.NET并行与分布式编程(9)-异步编程设计模式

 
阅读更多

一、并行基础

许多个人计算机和工作站都有两个或四个内核(即 CPU),使多个线程能够同时执行。 在不久的将来,计算机预期会有更多的内核。 为了利用当今和未来的硬件,您可以对代码进行并行化,以将工作分摊在多个处理器上。 过去,并行化需要线程和锁的低级操作。 Visual Studio 2010 和 .NET Framework 4 提供了新的运行时、新的类库类型以及新的诊断工具,从而增强了对并行编程的支持。 这些功能简化了并行开发,使您能够通过固有方法编写高效、细化且可伸缩的并行代码,而不必直接处理线程或线程池。 下图从较高层面上概述了 .NET Framework 4 中的并行编程体系结构。

.NET 并行编程体系结构

 

 

二、异步编程设计模式

使用多种方式可向客户端代码公开异步功能。
基于事件的异步模式为类规定了一种用于呈现异步行为的建议方式。

 

 

IAsyncResult 接口

表示异步操作的状态

'声明 <ComVisibleAttribute(True)> _ Public Interface IAsyncResult '用法 Dim instance As IAsyncResult

1)IAsyncResult 接口由包含可异步操作的方法的类实现。它是启动异步操作的方法的返回类型,如 FileStream.BeginRead,也是结束异步操作的方法的第三个参数的类型,如 FileStream.EndRead。当异步操作完成时,IAsyncResult 对象也将传递给由 AsyncCallback 委托调用的方法。
2).NET Framework 允许您异步调用任何方法。为此,应定义与您要调用的方法具有相同签名的委托;公共语言运行库会自动使用适当的签名为该委托定义 BeginInvoke 和 EndInvoke 方法。
BeginInvoke 方法可启动异步调用。它与您需要异步执行的方法具有相同的参数,另外它还有两个可选参数。第一个参数是一个 AsyncCallback 委托,该委托引用在异步调用完成时要调用的方法。第二个参数是一个用户定义的对象,该对象可向回调方法传递信息。BeginInvoke 立即返回,不等待异步调用完成。BeginInvoke 会返回 IAsyncResult,这个结果可用于监视异步调用进度。
EndInvoke 方法检索异步调用的结果。调用 BeginInvoke 后可随时调用 EndInvoke 方法;如果异步调用尚未完成,EndInvoke 将一直阻止调用线程,直到异步调用完成后才允许调用线程执行。EndInvoke 的参数包括您需要异步执行的方法的 out 和 ref 参数(在 Visual Basic 中为 <Out> ByRef 和 ByRef)以及由 BeginInvoke 返回的 IAsyncResult。
3) IAsyncResult 类型公开的成员
   AsyncState  获取用户定义的对象,它限定或包含关于异步操作的信息。
   AsyncWaitHandle  获取用于等待异步操作完成的 WaitHandle。
   CompletedSynchronously  获取异步操作是否同步完成的指示。
   IsCompleted  获取异步操作是否已完成的指示。

分享到:
评论

相关推荐

    深入.net平台和c#编程PPT-07

    12. **最佳实践与设计模式**:分享在.NET开发中遵循的最佳实践,以及常见的设计模式,如工厂模式、单例模式、观察者模式等。 通过深入学习这些内容,开发者将能够更熟练地运用.NET平台和C#语言来构建高质量、可扩展...

    VB.NET高级编程

    以上只是VB.NET高级编程的一部分内容,实际应用中还需要结合设计模式、单元测试、性能优化等多方面知识,才能编写出高效、健壮的VB.NET应用程序。通过学习和实践,开发者可以充分利用VB.NET的强大功能,创造出满足...

    vb.net中高级篇.rar_.net_vb net_vb_net_vb.net_vb.net_

    4. **异步编程**:VB.NET支持异步编程模型,如`Async/Await`关键字,使得编写非阻塞的IO密集型或网络密集型应用变得更加简单。 5. **事件和委托**:VB.NET中的事件和委托是实现事件驱动编程的关键,它们允许对象间...

    VB.NET应用集锦例程源代码

    每个项目都提供了实际操作的代码,通过阅读和运行这些代码,学习者可以深入理解VB.NET的语法、类库和编程模式。同时,解压缩后的Readme.txt和说明.txt文件通常会提供项目背景、目的、使用方法和注意事项,是进一步...

    浅谈.NET下的多线程和并行计算.pdf

    - **异步编程模型**:.NET还支持基于事件的异步模式(EAP)和任务并行库(TPL)等异步编程模型。 **2. 多线程编程挑战** - **线程安全问题**:当多个线程访问同一资源时,需要确保数据的一致性和完整性。 - **死锁与...

    Visual.Basic.2010&.NET.4高级编程(第6版)

    9. **最佳实践和设计模式**:提供编程指导,强调可维护性和可扩展性的设计原则。 总的来说,《Visual.Basic.2010&.NET.4高级编程(第6版)》是VB6开发者向现代.NET开发环境转型的理想教程,它不仅涵盖了语言和框架...

    Apress - Pro VB 2008 and the .NET 3.5 Platform, 3rd Edition (Mar 2008)

    9. **并发与多线程**:VB 2008提供了对多核处理器和并发编程的支持,包括线程同步、异步编程和并行 LINQ。 10. **调试与性能优化**:介绍Visual Studio 2008中的调试工具,以及如何分析和优化代码性能。 这本书还...

    .NET面试大全【经典,值得珍藏】

    2. VB.NET:另一种流行的.NET语言,语法与VB6类似,但支持.NET框架的所有功能。 3. F#:函数式编程语言,也可用于.NET开发,适合处理数据科学和并行计算任务。 三、ASP.NET 1. ASP.NET Web Forms:基于控件的模型,...

    经典的.NET 面试题

    - Task并行库(TPL):.NET 4.0引入的新特性,简化了异步编程。 7. **异常处理** - 异常是程序运行时出现错误的情况,可以通过try-catch-finally语句块捕获和处理。 - 自定义异常:通过继承System.Exception类,...

    .Net framwwork 4.0

    在Asp.net方面,.NET Framework 4.0引入了ASP.NET MVC(Model-View-Controller)框架,这是一种设计模式,有助于实现更清晰的代码结构和更好的测试性。此外,ASP.NET Dynamic Data框架简化了数据库驱动的应用程序...

    精通.Net核心技术原理与构架+精通.NET核心技术高级特性

    7. **MVC(Model-View-Controller)**: ASP.NET MVC是一种流行的设计模式,用于构建清晰的、可测试的Web应用程序。 8. **.NET Core与跨平台开发**: .NET Core是跨平台的.NET实现,允许开发者在Windows、Linux和...

    .net4.0安装文件

    8. **并行编程和Task Parallel Library (TPL)**:.NET 4.0引入了对多核处理器更充分的利用,通过TPL提供了并行编程的支持,使开发者能编写高性能的多线程应用程序。 9. **内存诊断工具**:.NET 4.0提供了诊断工具,...

    Advanced .NET Programming

    - **异步编程模型**:.NET提供了一套强大的异步编程模型,包括Task并行库(TPL)和异步编程模式(Async/Await),以实现非阻塞操作,提高应用程序响应性和资源利用率。 - **动态类型和反射**:通过动态类型和反射,可以...

    .NET4.0平台

    4. **并行扩展(Parallel Extensions)**:随着多核处理器的普及,.NET Framework 4.0引入了并行扩展,为开发者提供了更易于使用的并发编程模型,以利用多核硬件提高性能。 5. **WCF(Windows Communication ...

    并行计算的介绍

    #### 五、并行计算的设计模式 - **数据并行**:将数据集划分为若干子集,在不同的处理器上进行处理。 - **任务并行**:将计算任务分解为多个子任务,由不同的处理器并行处理。 - **流水线并行**:将计算过程划分为...

    Microsoft .NET Framework 4(独立安装程序)

    2. **C# 4.0 和 VB.NET 10.0**:这两个编程语言随着.NET Framework 4一同发布,引入了新的特性,如动态类型、命名参数、可空引用类型和多目标框架支持。 3. **WCF(Windows Communication Foundation)**:这个组件...

    NETFramwork.rar

    其中最重要的是改进了性能,尤其是在多核处理器上的并行计算支持,引入了Task Parallel Library(TPL)来简化异步编程。此外,还更新了WCF(Windows Communication Foundation)、WPF(Windows Presentation ...

    .net 平台面试题

    9. **多线程和并发**:在.NET中,Thread类用于创建和管理线程,而Task Parallel Library(TPL)在.NET 4.0中引入,提供了更高级别的并行编程抽象。 10. **异常处理**:理解try-catch-finally结构,以及如何使用...

    .net framework4.0

    这个框架提供了丰富的类库,使得开发者可以使用C#、VB.NET、C++等编程语言进行开发,大大简化了软件工程的过程。在这个版本中,微软引入了许多新特性和改进,以提高性能、可维护性和开发效率。 首先,.NET ...

    framwork3.5

    4. **ASP.NET MVC (Model-View-Controller)**:这是一个用于构建Web应用程序的设计模式,它将应用程序的业务逻辑、用户界面和数据访问分离开来,提高了代码的可维护性和可测试性。 5. **WCF (Windows Communication...

Global site tag (gtag.js) - Google Analytics