vb .net多线程编程的详细说明(完整版)

vb .net多线程编程的详细说明(完整版)

ID:18897280

大小:116.50 KB

页数:13页

时间:2018-09-24

vb .net多线程编程的详细说明(完整版)_第1页
vb .net多线程编程的详细说明(完整版)_第2页
vb .net多线程编程的详细说明(完整版)_第3页
vb .net多线程编程的详细说明(完整版)_第4页
vb .net多线程编程的详细说明(完整版)_第5页
资源描述:

《vb .net多线程编程的详细说明(完整版)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、VB .NET多线程编程的详细说明作者:陶刚   整理:http://tupan.net   更新时间:2011-4-1介绍  传统的VisualBasic开发人员已经建立了同步应用程序,在这些程序中事务按顺序执行。尽管由于多个事务多多少少地同时运行使多线程应用程序效率更高,但是使用先前版本的VisualBasic很难建立这类程序。  多线程程序是可行的,因为操作系统是多任务的,它有模拟同一时刻运行多个应用程序的能力。尽管多数个人计算机只有一个处理器,但是现在的操作系统还是通过在多个执行代码片断之间划分处理器时间提供了多任务。线程可能是整个应用程序,但通常是应用程序可以单独运行的一个部分。操作

2、系统根据线程的优先级和离最近运行的时间长短给每一个线程分配处理时间。多线程对于时间密集型事务(例如文件输入输出)应用程序的性能有很大的提高。  但是也有必须细心的地方。尽管多线程能提高性能,但是每个线程还是需要用附加的内存来建立和处理器时间来运行,建立太多的线程可能降低应用程序的性能。当设计多线程应用程序时,应该比较性能与开销。多任务成为操作系统的一部分已经很久了。但是直到最近VisualBasic程序员才能使用无文档记录特性(undocumented)或者间接使用COM组件或者操作系统的异步部分执行多线程事务。.NET框架组件为开发多线程应用程序,在System.Threading名字空间中

3、提供了全面的支持。  本文讨论多线程的好处以及怎样使用VisualBasic.NET开发多线程应用程序。尽管VisualBasic.NET和.NET框架组件使开发多线程应用程序更容易,但是本文作了调整使其适合高级读者和希望从早期VisualBasic转移到VisualBasic.NET的开发人员。  多线程处理的优点  尽管同步应用程序易于开发,但是它们的性能通常比多线程应用程序低,因为一个新的事务必须等待前面的事务完成后才能开始。如果完成某个同步事务的时间比预想的要长,应用程序可能没有响应。多线程处理可以同时运行多个过程。例如,字处理程序能够在继续操作文档的同时执行拼写检查事务。因为多线程应

4、用程序把程序分解为独立的事务,它们能通过下面的途径充分提高性能:  l多线程技术可以使程序更容易响应,因为在其它工作继续时用户界面可以保持激活。  l当前不忙的事务可以把处理器时间让给其它事务。  l花费大量处理时间的事务可以周期性的把时间让给其它的事务。  l事务可以在任何时候停止。  l可以通过把单独事务的优先级调高或调低来优化性能。  明确地建立多线程应用程序的决定依赖于几个因素。多线程最适合下面的情况:  l时间密集或处理密集的事务妨碍用户界面。  l单独的事务必须等待外部资源,例如远程文件或Internet连接。例如,某个应用程序跟随Web页面上的链接并下载符合特定条件的文件。这种应

5、用程序可以同步一个接一个地下载文件或者使用多线程在同一时刻下载多个文件。多线程的方法比同步方法的效率高得多,因为即使某些线程从远程Web服务器上接收到的响应很慢,文件也可以被下载。   建立新线程建立线程的最直接的方法是建立线程类的一个新的实例并且使用AddressOf语句替你希望运行的过程传递一个委托。例如下面的代码运行一个作为单独的线程的叫做SomeTask的子过程。DimThread1AsNewSystem.Threading.Thread(AddressOfSomeTask)Thread1.Start'这儿的代码立即运行  这就是建立和启动线程的全部工作。调用线程的Start方法后面的

6、任何代码立即执行,不需要等待前面线程的结束。下表是你能使用的控制单独线程的方法:上面的大多数方法字面上容易理解,但是安全点(safepoint)的概念对你来说可能是新的。安全点是代码中的某个位置,在这个位置通用语言运行时可以安全地执行自动无用单元收集(garbagecollection,释放无用变量并恢复内存的过程)。当调用线程的Abort或Suspend方法时,通用语言运行时分析代码,决定线程停止运行的适当位置。  下表是线程的一些常用的属性:当建立和管理线程时它的属性和方法很重要。本文的"线程同步"部分将讨论你怎样使用这些属性和方法控制和调整线程。  线程参数和返回值前面例子中的线程调用没

7、有参数和返回值。这是使用这种方法建立和运行线程的主要缺点之一。但是,你可以在类或结构体中包装线程,为运行在单独线程上的过程提供和返回参数。ClassTasksClassFriendStrArgAsStringFriendRetValAsBooleanSubSomeTask()'StrArg字段是一个参数MsgBox("TheStrArgcontainsthestring"&StrArg)RetVa

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。