本站联系方式
   联系QQ  :1095080675
   联系QQ  :1223950575
  技术指导:1353934434
  电子邮箱:1095080675@qq.com
标题  基于VB.NET的多线程技术应用
编号  13362
编程语言  VB.NET
开发环境  Visual Studio 2005
数据库  
资料明细  论文、程序
推荐指数  ★★★★★
内容介绍

1 引言
1.1多线程的意义
采用多线程技术的应用程序可以较好地利用系统资源。多线程技术的主要优势在于充分利用了CPU的空闲时间片,用尽可能少的时间来对用户的要求做出响应,使得进程的整体运行效率得到较大提高,同时 增强了应用程序的灵活性。更重要的是,由于同一进程的所有线程是共享同一内存,所以不需要特殊的数据传送机制,不需要建立共享存储区或共享文件,从而使得不同任务之间的协调操作与运行、数据的交互、 资源的分配等问题更加易于解决。
在一台拥有多个处理器的机器上,来自一个应用程序域AppDomain的线程可分配在所有的处理器上运行,从而允许同时地运作。在分布式应用时,可提升扩展性,因为更多的客户可以分享一个服务器上的 CPU资源,而对于桌面的应用程序,例如Excel和Word等,也能够从线程中得到好处,比如可以执行后台的操作例如重新计算和打印等。
1.2进程与线程和应用程序域
在操作系统中,进程是应用程序的运行实例,是应用程序的一次动态执行,其所有线程共享虚拟地址空间、全局变量和该进程的操作资源。而线程是进程内部程序执行的路径,是进程的一个执行单元。线程 是操作系统分配CPU时间的基本单位,一个线程可以执行应用程序的任何部分,包括当前被其它线程执行的部分。一个应用程序至少包括一个主线程,还可拥有其它辅线程,当一个应用程序中的线程多于一个 时,就称该程序是多线程的。
为了运行所有这些线程,操作系统为每个独立线程安排一些CPU,并通过其本身的调度机制来评价各个活动线程的优先级,优先级别高的活动优先执行,优先级别低的活动线程挂起。创建一个进程时,它的 第一个线程称为主线程,它由系统自动生成,然后可由这个主线程生成辅助线程,这些辅助线程又可生成更多的线程。
在.N盯框架中,所有程序编译后生成的都是中间代码,而这些中间代码的隔离、加载和卸载以及安全边界的提供都是通过应用程序域来实现的。此时,一个进程可以包含一个或多个应用程序域,而一个应用 程序域又可以包含一个或多个线程。这样实际上就相当于在进程和线程之间增加了一个新的安全边界。无论在同一个进程之内还是在不同的进程之间,每个应用程序域之间都是相互无关的,这些不同的应用程序 域之间只能通过远程通讯来实现消息和对象的传递。
2 Visual basic.net对多线程的支持
2.1 VB对多线程的支持
VB6.0及其以前的版本较少涉及到多线程的问题,因为VB并不是用来处理多线程应用的,多线程模式的工作原理和编程机制对于VB并不完全适合,会导致访问违例和内存错误。在VB6.0的应用中,我 们可以通过Win32 CreateThread API来创建一个多线程的应用,或者通过COM库而在一个独立的线程中创建一个组件,但这些技术设计调试起来都是有不小难度的,故应用面非常窄。
2.2 VisuaI Basic.NET对多线程的支持
Visual Basic.NET是基于.NET框架的,而.NET框架的重要组成部分CLR(Common Language Runtime,通用语言运行时)内置支持多线程应用,可以通过系统的Threading类直接建立多线程应用程序,并且支持线程池等高级功能。任何.N盯框架结构下的语言,包括VB、C孝等在编写多线程应用程序的时候,都可以利用系统类所提供的对象和方法,而不 再需要使用Win32 API,因此可以大大降低开发的难度,减少错误所发生的几率。
3 Visual Basic .NET中多线程编程的实现
3.1线程的创建与管理
创建和维护线程的基类是System.Threading.Thread类,它能够创建并控制线程,设置其优先级并获取其状态。
在创建线程前必须引用threading基类:
Imports System.Threading。然后可创建一个新的线程类实例,并使用AddressOf语句为要运行的线程指定任务。接着可以利用Start、Resume、Suspend、Sleep、Stop、Abort和Join等方法操纵线程,还可以通过如IsAlive、IsBackground、Priority、ApartmentState和ThreadState等属性查询和设置线程状态。如使用Thread类的Sleep方法可以阻滞当前线程,使用Suspend方法可以挂起线程,使用Resume可以重新启动挂起的线程,使用Abort方法可以停止一个线程,使用Join方法可以使当前线程等待其它线程运行结束。

演示下载  暂无演示
说明
  以上是程序功能介绍。如果对以上内容感兴趣,可以QQ:1095080675或邮件1095080675@qq.com继续联系我们。
相关文章
  • 基于Http协议的多线程断点续传下载实现
  • 上一篇:VB程序主观题自动评阅系统的设计与实现
  • 下一篇:基于VB的动态菜单的设计与应用