vb创建多线程应用程序

vb创建多线程应用程序

ID:18691007

大小:95.00 KB

页数:10页

时间:2018-09-20

vb创建多线程应用程序_第1页
vb创建多线程应用程序_第2页
vb创建多线程应用程序_第3页
vb创建多线程应用程序_第4页
vb创建多线程应用程序_第5页
资源描述:

《vb创建多线程应用程序》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、问题背景:有时候我们做程序时有这样的需求:有一个需要运行时间很长的循环,那么程序只有等待循环运行结束后才执行别的程序代码,这样机器一直处于循环之中,而不能响应别的事情,对CPU资源来说是一种浪费,那么可不可以既让循环执行,又可以执行程序另外的一部分代码呢?答案是可以的,那就要用到多线程了。相关知识:进程:是指程序在一个数据集合上运行的过程,是操作系统进行资源分配和调度运行的一个独立单位,简单来说进程就是程序的一次执行。进程的两个基本属性:1.进程是一个可拥有资源的独立单位;2.进程同时又是一个可以独立调度和分配的基本单位。操

2、作系统中引入进程的目的是为了使多个程序并发执行,以改善资源利用率及提高系统的吞吐量。线程:线是进程中的一个实体,是被系统独立调度和分配的基本单位。线程自己基本上不拥有系统资源,只拥有一些在运行中必不可少的资源,但它可与同属一个进程的其他线程共享进程所拥有的全部资源。同一个进程中的多个线程之间可以并发执行。问题实现:VB可不可以创建多线程呢?答案:VB本身不可以,但用API函数VB可以实现。在VB中创建线程用到以下几个API函数:'创建线程API'此API经过改造,lpThreadAttributes改为Any型,lpStar

3、tAddress改为传值引用:'因为函数入口地址是由形参变量传递,如果用传址那将传递形参变量的地址而不是函数的入口地址'参数dwStackSize为应用程序堆栈大小,lpStartAddress为函数入口地址PrivateDeclareFunctionCreateThreadLib"kernel32"(ByVallpThreadAttributesAsAny,ByValdwStackSizeAsLong,ByValyearsmortgagehousing;4.mortgageregistrationformalitiesar

4、ecompleted.(D)pledge1.borrower(includingthepledgor)between18-65yearsofage,withfullcivilcapacity;2.collaterallpStartAddressAsLong,lpParameterAsAny,ByValdwCreationFlagsAsLong,LpthreadIdAsLong)AsLong'终止线程APIPrivateDeclareFunctionTerminateThreadLib"kernel32"(ByValhThre

5、adAsLong,ByValdwExitCodeAsLong)AsLong'激活线程API,参数hThread为CreateThread创建的线程句柄PrivateDeclareFunctionResumeThreadLib"kernel32"(ByValhThreadAsLong)AsLong'挂起线程APIPrivateDeclareFunctionSuspendThreadLib"kernel32"(ByValhThreadAsLong)AsLong 了解完上面的API函数后请看下面的实例:实例效果:此实例实现三个图片

6、框的背景色一起变色。实例的窗体布局见图:yearsmortgagehousing;4.mortgageregistrationformalitiesarecompleted.(D)pledge1.borrower(includingthepledgor)between18-65yearsofage,withfullcivilcapacity;2.collateral 程序的工程窗口: 源代码见:《VB创建多线程应用程序(二)》yearsmortgagehousing;4.mortgageregistrationformali

7、tiesarecompleted.(D)pledge1.borrower(includingthepledgor)between18-65yearsofage,withfullcivilcapacity;2.collateral源代码如下:窗体中的代码:OptionExplicit '开始PrivateSubCommand1_Click()OnErrorResumeNextWithmyThreadleft.InitializeAddressOfFillleft'传递过程地址给线程.ThreadEnabled=TrueEndW

8、ithWithmyThreadright.InitializeAddressOfFillright.ThreadEnabled=TrueEndWithWithmyThreadbottom.InitializeAddressOfFillbottom.ThreadEnabled=TrueEnd

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

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

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