VB.NET多线程开发实例

AI权益加码!Claude Code、Cursor等20+工具免费用! 购周边限时加赠Coding Plan Lite,畅享主流AI工具!学习进阶更高效! 阅读详情
VB.NET(Visual Basic.NET)是为适应Microsoft .NET框架的需要,对Visual Basic进行了重大改造后的开发工具。它比Visual Basic 6.0功能更强大,更易于使用。其中最重要的变化就是对象继承,在VB.NET中,所有可管理的类型都衍生自System.Object。作为编程工具,最重要的一个特性就是垃圾碎片的回收,它由CLR(Common Language Runtime)进行控制,并提供更好的内存管理功能。通用的类型定义可以提供更好的互操作性和协同工作能力,因此,VB.NET显得更强大、更具可靠性。
在VB.NET中,大多数CLR内建的类型都在System名字空间里已经定义了。比如:System.Object, System.Int32, 和 System.String。要注意的是:一个名字空间可能嵌在另一个名字空间内,象System.Data里就有System.Data.DataSet的类。
代表是CLR编程模型很重要的一个新概念。代表是一个特殊类型的可管理的类,当你创建一个代表的实例时,你必须提供一个带有匹配签名的方法执行的地址,一旦创建了一个代表的实例,调用方法将变的很容易。
过去,我们利用VB开发多线程的应用程序时,是一件很令人痛苦的事,经常是多线程的程序运行是会变成多错误的程序!但在VB.NET中,这种状况已经大为改观。现在,我们利用VB.NET处理多线程和利用JAVA处理多线程一样简单了。下面我们就举个例子,来看看VB.NET的多线程吧!
下面是多线程程序threadtest.vb的代码:
 
imports System
imports System.Threading
 
public class AClass
 
public sub Method1()
Dim i as integer
For i = 1 to 100
Console.Writeline("这是类AClass方法method1的内容",i)
next
end sub
 
public sub Method2()
Dim i as integer
For i = 1 to 100
Console.Writeline("这是类AClass方法method2的内容",i)
next
end sub
 
end class
 
public class ThreadTest
 
public shared sub Main()
dim obj as new aclass
dim th1,th2 as thread
 
th1=new Thread(new ThreadStart(addressof obj.method1))
th1.start
 
th2=new Thread(new ThreadStart(addressof obj.method2))
th2.start
 
dim i as integer
For i= 1 to 100
Console.WriteLine("Main方法里的内容",i)
Next
end sub
 
end class
 
现在,来让我们剖析一下上面的例子:
1.我们创建了我们自己的类AClass,并创建了两个方法:Method1和Method2。
2.这两个方法很简单,只有一个For循环,向输出设备输出一些信息。
3.我们还定义了另外一个类ThreadTest来使用上面创建的类AClass。
4.在Main()方法中,我们创建了类Thread的实例。
5.类Thread可以在System.Threading名字空间里得到,它定义了处理线程的属性和方法。
6.在类Thread的构造器中,我们使用了类ThreadStart,类ThreadStart是一个代表,标志着当一个线程开始时就开始执行定义的方法。
7.为了执行定义的方法,我们实际调用的是线程的Start()方法。
8用VBC来编译上面的程序:
vbc /out:threadtest.exe threadtest.vb
9.运行编译后的程序,我们将会看到我们定义的两个方法和main()方法的混合输出,这就说明每一个方法都在自己的线程下运行。
10.除了上面的方法,线程还有下面常用的方法:
Stop():停止线程的运行。
Suspend():暂停线程的运行。
Resume():继续线程的运行。
Sleep():停止线程一段时间(单位为毫秒)。
 
上面只是VB.NET多线程的一个简单的例子,希望对大家有所启发!
VB.NET读取数据库时多线程显示进度条 VB.net通过ADO.NET连接数据库,或执行查询语句等,都需要等待一段时间,这段时间界面无法操作,程序显示出假死现象,无任何响应,为了不让用户误认为电脑死机,需要显示一个进度条来提示用户。但是问题在于,ADO.NET(包括其它数据库引擎)在执行指令时并不返回实时状态信息,只有在命令执行完毕后,才返回结果。因此,需要通过VB.NET多线程技术,在ADO.NET执行命令期间,显示一个不断变化的进度条 阅读详情

相关推荐

(vb)利用GetBitmapBits,SetBitmapBits加速图像处理

(vb)利用GetBitmapBits,SetBitmapBits加速图像处理(不知道前面有没有人写过这个,这里主要是最近写程序的一些心得,希望对大家有用.久未写东西,会有一堆的毛病,将就着吧.)最近发现了两个好东东,SetBitmapBits,GetBitmapBits,能极大的提高某些图像处理的速度.引用别人的话"SetBitmapBits: vb声明: Declare Function Se

lingll's blog 6535

vs2010_C#_多线程_播放wav声音_截取屏幕图片的小工具

用VS2010开发,功能是判断屏幕鼠标指向的15*15像素的区域内在一段时间内是否是纯颜色,如果是则播放wav提示音。

使用VB.NET开发多线程

   摘要:.NET 框架提供了新的类,可以方便地创建多线程应用程序。本文介绍如何使用 Visual Basic® .NET多线程编程技术来开发效率更高、响应速度更快的应用程序。 目录简介 多线程处理的优点 创建新线程 同步线程 线程计时器 取消任务 总结 简介过去,

wuhuwy的专栏 5999

VB.NET多线程应用

其中的一个问题是如何将程序的数据由线程类的构造器传入或者传出,也就是说,对于放到另外一个线程中的过程,你既不能传参数给它,也不能由它返回值。休眠和挂起的区别是,后者并不立刻让线程进入一个等待的状态,线程并不会挂起,直到.NET runtime认为现在已经是一个安全的地方来挂起它了,而休眠则会立刻让线程进入一个等待的状态。在许多的情况下,你需要建立一个新的线程来进行后台的处理,这样可提高应用的可用性,否则,一个长的处理就可以令程序的响应变得很慢,例如你按下表格上的一个取消按钮,却很久都没有响应。

chinaherolts2008的博客 2219

vb.net多线程

Dim tUdpThread As Thread Dim tBroadCast As Thread Dim tBroadCastExit As Thread Dim startUdpThread As ClassStartUdpThread = New ClassStartUdpThread() tUdpThread = New Thread(AddressOf sta...

emowuyi 764

VB.NET多线程开发实例(转)

VB.NET多线程开发实例(转) VB.NET(Visual Basic.NET)是为适应Microsoft .NET框架的需要,对Visual Basic进行了重大改造后的开发工具。它

625

VB.Net多线程编程基础与实例

VB.Net中,线程的创建和管理可以通过.NET Framework提供的命名空间下的Thread类来实现。Thread类是线程编程的基础,它封装了线程的操作。创建线程的基本步骤包括实例Thread类的一个对象,将要运行的方法作为线程的入口点传递给构造函数,然后调用方法来启动线程。一旦启动,操作系统调度器就会管理该线程的执行。下面是使用Thread类创建线程的一个简单示例:Sub Main()' 创建线程实例' 启动线程t.Start()End Sub。

weixin_42476987的博客 985

多线程应用方法(上)

多线程应用方法(上)一、进程及线程线程与进程区别,一个应用程序必须有一个进程,但是可线程的数量却无法确定,没有线程也可能,更多使用线程也是可能的。进程是以线程为基础。进程用来管理线程,并分配线程工作机制。采用多线不是使软件工作得更快,而是让软件工作得更灵敏。用VB.NET开发多线程,变得很轻松。操作更方便,管理更容易。 二、线程基本用法 定义一个类,首先要引

wl58796351的专栏 486

vb.net 教程 6-12 可以查看线程运行进度的例子

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 本节的例子通过主线程不断读取类的值来获得子线程运行情况: 使用到的类: Class clsSum2 Public inputNum As Integer Public currentNum As Integer Public outputSum As Integer End Class 其中currentNum保存当前正在计算的那个整数。 Sub sample8()...

chinaherolts2008的博客 420

VB.NET中高级编程技巧与概念教程

在某些情况下,内置的异常类可能不满足特定的需求。此时,开发者可以创建自定义异常类以提供更详细的错误信息。自定义异常类通常继承自基类或其子类,并可以重写构造函数以接受更多自定义信息。下面是一个创建自定义异常类的例子:End SubEnd SubEnd Class在创建了自定义异常类后,就可以在代码中像抛出其他异常一样抛出这个异常:Throw New MyCustomException("这是一个自定义异常信息。")在本章节中,我们探讨了如何在VB.NET中实现高级数据库操作。

weixin_42515842的博客 945

多线程、Socket技术及委托技术的关系

这几天忙着开发一个竞赛软件,要求一个前端的显示,幕后操控前端显示给竞赛者,这就要用到多线程、Socket技术及委托技术。于是在网上找了一些关于Socket技术的资料,加上学过的线程的一点知识,开始我的整合编程。深知自己一直都对VB没怎么兴趣的,感觉他不是真正的编程,VB是易学,易懂,易理解,想想还是花点时间学下,感觉有一天会有用的,于是一时心血来潮,凭着自己埋头苦干的边学东西边做软件,还好有其他编

MinSen 1275

PCL2:多版本 Minecraft 一键启动管理器

PCL2(Plain Craft Launcher 2)是一个免费开源的 Minecraft 启动器,主要解决一个问题:你同时玩着 1.16.5 的整合包、1.20.1 的纯净版和一台服务器客户端时,不用在每个版本之间来回折腾环境。它把版本下载、登录、模组安装、整合包导入、崩溃分析这些琐事整合进一个界面,下载好解压就能用,不需要配置环境。 ## 🎮 核心能力 ### 同时管理多个 Minec

gitblog_00770的博客 173

VB.Net多线程及委托

VB.Net多线程及委托   一、多线程:在一个程序中,这些独立运行的程序片断叫作“线程”(Thread),利用它编程的概念就叫作“多线程处理”。多线程处理一个常见的例子就是用户界面。利用线程,用户可按下一个按钮,然后程序会立即作出响应,而不是让用户等待程序完成了当前任务以后才开始响应。用多线程的目的就是提高应用程序对事务处理能力,当

Goldxwang的博客 7127

如何使用vb.net多线程

可能一些小程序用不上,单线程就可以完成,但是很多程序往往需要多个线程同时操作,或者用辅助线程来完成主线程的工作,    多线程对于一个程序员来说是一个必须逾越的槛。最近在写一个程序,设备要同时登陆3台设备,如果使用单线程排队完成,时效性就达不到要求,应次没办法必须要学习多线程,那么如何使用vb.net多线程呢?下面是我百度搜索的一片多线程使用实例,先参考: 线程的基本操作 Dim Td As

编程之路 1万+

VB.NET总结

说实话,看VB.NET视频时脑袋真的是快炸了,那么多的繁体字,全是台湾术语,看着就心烦,但是还是忍着痛苦看完了。收获不多,但是值得庆幸的是VB.NET 也就是那么几个新知识,大部分都是VB,还好!       大部分都和VB一样,但是同样也增加了一些VB没有的。 多线程机制:       线程和进程不一样,进程被定义为应用程序的运行实例,是应用程序的一次动态执行。而线程是进程内部程序执行

那么好, 2424

基于VB.NET多线程编程实现

基于VB.NET多线程编程实现  摘 要 Visaul Basic 在6.0之前的版本中对多线程并没有提供一个很好的支持,而微软的.NET框架提供了新的类库,从而可以方便地创建多线程应用程序。 本文首先概述了进程、线程以及应用程序域的相互关系,随后介绍了如何使用Visual Basic.NET多线程编程技术来开发效率更高,响应速度更快的应用程序。   关键词 .NET框架 Visual Bas

oakeil的专栏 873
上一篇: ASP.NET立即上手教程 7
下一篇: 在 Visual Basic .NET 中实现后台进程
masterall
博客等级 码龄22年 17粉丝 557原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值