返回顶部
首页 > 资讯 > 精选 >VB.NET如何实现多线程编程技术
  • 490
分享到

VB.NET如何实现多线程编程技术

2023-06-17 21:06:06 490人浏览 安东尼
摘要

这篇文章将为大家详细讲解有关VB.NET如何实现多线程编程技术,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。传统的VB.net多线程编程开发人员已经建立了同步应用程序,在这些程序中事务按顺序执行。尽管由于

这篇文章将为大家详细讲解有关VB.NET如何实现多线程编程技术,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

传统的VB.net线程编程开发人员已经建立了同步应用程序,在这些程序中事务按顺序执行。尽管由于多个事务多多少少地同时运行使多线程应用程序效率更高,但是使用先前版本的VisualBasic很难建立这类程序。

多线程程序是可行的,因为操作系统是多任务的,它有模拟同一时刻运行多个应用程序的能力。尽管多数个人计算机只有一个处理器,但是现在的操作系统还是通过在多个执行代码片断之间划分处理器时间提供了多任务。线程可能是整个应用程序,但通常是应用程序可以单独运行的一个部分。操作系统根据线程的优先级和离最近运行的时间长短给每一个线程分配处理时间。多线程对于时间密集型事务(例如文件输入输出)应用程序的性能有很大的提高。

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

本文讨论多线程的好处以及怎样使用VisualBasic .NET开发多线程应用程序。尽管VisualBasic .NET和.NET框架组件使开发多线程应用程序更容易,但是本文作了调整使其适合高级读者和希望从早期VisualBasic转移到VB.NET多线程编程的开发人员。

1多线程处理的优点

尽管同步应用程序易于开发,但是它们的性能通常比多线程应用程序低,因为一个新的事务必须等待前面的事务完成后才能开始。如果完成某个同步事务的时间比预想的要长,应用程序可能没有响应。多线程处理可以同时运行多个过程。例如,字处理程序能够在继续操作文档的同时执行拼写检查事务。因为多线程应用程序把程序分解为独立的事务,它们能通过下面的途径充分提高性能:
◆多线程技术可以使程序更容易响应,因为在其它工作继续时用户界面可以保持激活。
◆当前不忙的事务可以把处理器时间让给其它事务。
◆花费大量处理时间的事务可以周期性的把时间让给其它的事务。
◆事务可以在任何时候停止。
◆可以通过把单独事务的优先级调高或调低来优化性能。明确地建立多线程应用程序的决定依赖于几个因素。多线程最适合下面的情况:
◆时间密集或处理密集的事务妨碍用户界面。
◆单独的事务必须等待外部资源,例如远程文件或Internet连接。

例如,某个应用程序跟随WEB页面上的链接并下载符合特定条件的文件。这种应用程序可以同步一个接一个地下载文件或者使用多线程在同一时刻下载多个文件。多线程的方法比同步方法的效率高得多,因为即使某些线程从远程Web服务器上接收到的响应很慢,文件也可以被下载。


2建立新线程

建立线程的最直接的方法是建立线程类的一个新的实例并且使用AddressOf语句替你希望运行的过程传递一个委托。例如下面的代码运行一个作为单独的线程的叫做SomeTask的子过程。

Dim Thread1 As New System.Threading.Thread(AddressOf SomeTask)  Thread1.Start  ' 这儿的代码立即运行

这就是建立和启动线程的全部工作。调用线程的Start方法后面的任何代码立即执行,不需要等待前面线程的结束。下表是你能使用的控制单独线程的方法:

VB.NET如何实现多线程编程技术

上面的大多数方法字面上容易理解,但是安全点(safe point)的概念对你来说可能是新的。安全点是代码中的某个位置,在这个位置通用语言运行时可以安全地执行自动无用单元收集(garbage collection,释放无用变量并恢复内存的过程)。当调用线程的Abort或Suspend方法时,通用语言运行时分析代码,决定线程停止运行的适当位置。

下表是线程的一些常用的属性:

VB.NET如何实现多线程编程技术

当建立和管理线程时它的属性和方法很重要。本文的"线程同步"部分将讨论你怎样使用这些属性和方法控制和调整线程。

3线程参数和返回值

前面例子中的线程调用没有参数和返回值。这是使用这种方法建立和运行线程的主要缺点之一。但是,你可以在类或结构体中包装线程,为运行在单独线程上的过程提供和返回参

FriendStrArgAsString  FriendRetValAsBoolean  SubSomeTask()'StrArg字段是一个参数  MsgBox("TheStrArGContainsthestring"&StrArg)  RetVal=True'设置返回参数中的返回值  EndSub  EndClass'为了使用这个类,设置存储参数的属性或者字段,接着异步调用需要的方法  SubDoWork()  DimTasksAsNewTasksClass()  DimThread1AsNewSystem.Threading.Thread(AddressOfTasks.SomeTask)  Tasks.StrArg="SomeArg"'设置作为参数使用的字段  Thread1.Start()'启动新线程  Thread1.Join()'等待线程1结束'显示返回值  MsgBox("Thread1returnedthevalue"&Tasks.RetVal)  EndSub  ClassTasksClass

手工建立和管理线程最适合于希望很好地控制细节(例如线程的优先级和线程模型)的应用程序。你可能想象,通过这种方法管理大量的线程是很困难的。在你需要很多线程时考虑使用线程池来减小复杂程度。

关于“VB.NET如何实现多线程编程技术”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: VB.NET如何实现多线程编程技术

本文链接: https://lsjlt.com/news/293074.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • VB.NET如何实现多线程编程技术
    这篇文章将为大家详细讲解有关VB.NET如何实现多线程编程技术,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。传统的VB.NET多线程编程开发人员已经建立了同步应用程序,在这些程序中事务按顺序执行。尽管由于...
    99+
    2023-06-17
  • VB.NET编程多线程句柄技巧有哪些
    这篇文章给大家分享的是有关VB.NET编程多线程句柄技巧有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET编程经过长时间的发展,很多用户都很了解VB.NET编程中多线程程序。多线程成为大多程序员苦恼...
    99+
    2023-06-17
  • 如何实现Linux多线程编程
    这篇文章主要介绍“如何实现Linux多线程编程”,在日常操作中,相信很多人在如何实现Linux多线程编程问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何实现Linux多线程编程”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-13
  • GO语言编程技术:如何实现并发编程中的线程安全?
    随着计算机技术的不断发展,多核处理器已经成为现代计算机的标配。随之而来的是并发编程技术的需求,因为通过并发编程可以充分利用多核处理器的性能,提高程序的运行效率。然而,在并发编程中,由于多个线程可能同时访问共享数据,可能会出现数据竞争等问题...
    99+
    2023-11-04
    开发技术 编程算法 并发
  • 如何用PHP实现多线程编程
    目录多线程线程适用场景PHP中的多线程线程安全PHP 实现类和方法实例代码异步请求超时控制总结多线程 线程 首先说下线程: 线程(thread) 是操作系统能够进行运算调度的最小单位...
    99+
    2024-04-02
  • java多线程编程技术详解和实例代码
     java多线程编程技术详解和实例代码1.   Java和他的API都可以使用并发。可以指定程序包含不同的执行线程,每个线程都具有自己的方法调用堆栈和程序计数器,使得线程在与其他线程并发地执行能够共享程序范围内...
    99+
    2023-05-31
    java 多线程 编程
  • VB.NET中怎么实现多线程
    本篇文章为大家展示了VB.NET中怎么实现多线程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET(Visual Basic.NET)是为适应Microsoft .NET框架的需要,对Vis...
    99+
    2023-06-17
  • VB.NET如何实现线程同步
    这篇文章主要介绍了VB.NET如何实现线程同步,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VB.NET线程同步在VB.NET线程同步方面,VB.NET提供了几个方法。在上面...
    99+
    2023-06-17
  • 深入探究Python底层技术:如何实现多进程编程
    由于您提出了一个相当复杂和深入的话题,我会提供一个简短的例子,但是因为篇幅受限,将无法提供完整的代码示例。希望这个例子能帮助您理解如何在Python中实现多进程编程。Python多进程编程实现Python中有几种方法可以实现多进程编程,其中...
    99+
    2023-11-08
    多进程编程 实现方法 Python底层技术
  • VB.NET如何实现条形码编程
    这篇文章给大家分享的是有关VB.NET如何实现条形码编程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。条形码技术广泛应用于各行各业,你随便拿起一本书、一包薯片都可以在外包装上找到,利用条码读取机便可将这一条条黑白...
    99+
    2023-06-17
  • Java多线程与线程池技术分享
    目录一、序言1、普通执行2、线程池执行二、线程池基础1、核心参数2、参数与池的关系1、通用对比2、拓展对比3、无返回值任务4、有返回值任务三、Executors1、创建单一线程的线程...
    99+
    2024-04-02
  • android 多线程技术应用
    多线程案例——计时器 这个案例中,屏幕启动之后,进入如图所示的界面。 屏幕上有一个文本框用于显示逝去的时间,此外还有一个“停止计时”按钮。案例的用例图如图所示。  能...
    99+
    2022-06-06
    技术应用 多线程 线程 Android
  • Qt5多线程编程的实现
    目录一、线程基础1、GUI线程与工作线程2、数据的同步访问二、QT多线程简介三、QThread线程四、简单实例一、线程基础 1、GUI线程与工作线程 每个程序启动后拥有的第一个线程称...
    99+
    2024-04-02
  • 如何使用 C++ 函数实现多线程编程?
    如何使用 c++++ 函数实现多线程编程?创建一个带有可调用对象的 std::thread 对象。调用 join() 函数等待线程完成。使用互斥量、条件变量和信号量等线程同步技术来确保共...
    99+
    2024-04-26
    c++ 多线程编程 并发访问
  • 如何实现Python底层技术的线程管理
    抱歉,我在本平台上无法提供直接的代码示例。是否有其他方面的信息我可以帮助你呢?...
    99+
    2023-11-08
    实现方法 线程管理 Python底层技术
  • VB.NET如何实现播放声音编程
    这篇文章给大家分享的是有关VB.NET如何实现播放声音编程的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。添加三个button控件,写代码如下:Imports System.ComponentModel&...
    99+
    2023-06-17
  • C#怎么实现多线程编程
    本文小编为大家详细介绍“C#怎么实现多线程编程”,内容详细,步骤清晰,细节处理妥当,希望这篇“C#怎么实现多线程编程”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。一、使用线程的理由可以使用线程将代码同其他代码隔离...
    99+
    2023-06-30
  • Java如何实现多线程、线程同步
    这篇文章主要介绍了Java如何实现多线程、线程同步的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Java如何实现多线程、线程同步文章都会有所收获,下面我们一起来看看吧。1 多线程1.1 进程进程:是正在运行的程...
    99+
    2023-06-30
  • 如何实现Python底层技术的网络编程
    如何实现Python底层技术的网络编程网络编程是现代软件开发中的一个重要技术领域,通过网络编程,我们可以实现应用程序之间的通信,实现跨机器、跨平台的数据传输和交互。Python作为一种广泛使用的编程语言,提供了简洁而强大的底层技术来实现网络...
    99+
    2023-11-08
    Python 网络编程 底层技术
  • java多线程如何实现
    java实现多线程的方法:(推荐:java视频教程)方式一:继承Thread类的方式创建一个继承于Thread类的子类重写Thread类中的run():将此线程要执行的操作声明在run()创建Thread的子类的对象调用此对象的start(...
    99+
    2022-02-13
    java
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作