重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
多线程是用于处理复杂项目的
创新互联主要企业基础官网建设,电商平台建设,移动手机平台,微信小程序开发等一系列专为中小企业按需定制产品体系;应对中小企业在互联网运营的各种问题,为中小企业在互联网的运营中保驾护航。
打个比方
你的主程序线程A中有个循环,由于代码是一行行走的,所以循环结束前下面的代码无法运行,而此时主界面的反应就类似卡死的样子,你点击按钮也没有反应,因为主线程在忙着循环呢,所以对按钮的事件代码要等待了,如果要避免这种情况,就要用到多线程,另开一个新线程专门用来执行循环代码,主界面就不会卡死了,只要在循环结束后将结果传回主线程调用就可以了,再复杂点要涉及到委托,控制了
按你的要求其实你的代码用不到多线程,只要把sleep放到两段代码中间就可以了。
新线程结束用thread.abort()
Sub Main()
Dim thr As Thread
For Pi As Integer=0 To 4 //启用5线程
MulParams =Pi vbTab sFile vbTab dFile vbTab 1 vbTab DelN vbTab cr vbTab cg vbTab cb vbTab IndexI
GlobalParamas(pi)=MulParams .Split(vbTab)
thr=New Thread(AddressOf MyMulThreadCaller)
thr.Start() //启动多线程进程
Application.DoEvents
Next
End Sub
并没有看出什么地方可能导致程序假死,这排版也太乱了.不妨调试一下程序,当出现你说的"假死"后暂停一下程序,看看线程都卡在哪里.
另外,从设计上来看,你这里并不需要多线程操作.
简单回答:
1、当前来说,编程与运行环境合适的情况下,VB.net与VB都有实现多线程的可能。
2、VB、VB.net的最基本的概念,是调用系统的接口进行编程,只要系统提供“多线程”的功能调用,它们就能实现多线程。
3、VB注意于面向用户,面向任务,其高级的一些程序实现需要直接调用win的API,VB实现多线程的例子也可以在网络上搜索到。
一、关于VB、VB.net的相关知识:
1、编程指的是用人类能理解的语言来编写指令集,并通过专用的编译软件或环境来转化这些指令,使得这些指令能让计算机识别,从而控制计算机做人类需要进行的工作。
2、也就是说无论是VB.NET还是VB它们都只是“人类能理解的语言”,它们通过专用的编译软件或环境来转化这些指令,进而操作电脑。
3、进一步特化到VB上去说。VB基于VB的运行库,它的运行库又基于win的API((Application Programming Interface,应用程序编程接口)是一些预先定义的函数),也就是说,VB的很多(多到90%以上)的功能是直接基于调用windows提供的一些基本接口函数。
4、VB.net有什么不同呢,它基于.net运行库。什么 意思?这个意思就是,微软发现win的API不够用了,不好用了,就打算在windows上加装点东西,让它有更多的接口函数。但要注意的是,多数情况下,这些接口比win的API的效率要低一些。在win7及以后的版本的win中,已经自含了.net运行库。
5、顺便说,为什么很多人会发现win7的运行速度看起来要比xp慢呢,个人认为就是因为调用的是.net的接口来实现的,.net就是比API的慢。当然了,.net的功能上要比xp原有的API的功能强。
6、VB与VB.net在语法上是非常近似的,只是因为Visual Studio的版本不同,后期的Visual Studio已不提供简纯的VB了,注意它们的不同主要是后台核心调用的理念上的不同。