VB.NET并行与分布式编程(2)-线程终止


 Imports System
Imports System.Threading


Module Module1

    Sub Main()

        Dim mythread1 As Thread
        Dim mythread2 As Thread
        Dim mythread3 As Thread
        '创建线程对象
        mythread1 = New Thread(AddressOf mythreadrun)
        mythread2 = New Thread(AddressOf mythreadrun)
        mythread3 = New Thread(AddressOf mythreadrun)
        Console.WriteLine(Now.ToLongTimeString & "线程对象创建完毕,开始执行线程")

        '执行线程
        mythread1.Start("线程1")
        mythread2.Start("线程2")
        mythread3.Start("线程3")
        '等待线程完成
        mythread1.Join()
        mythread2.Join()
        mythread3.Join()
        '线程执行完毕
        Console.WriteLine(Now.ToLongTimeString & "线程执行完毕!")
    End Sub
    Public Sub mythreadrun(ByVal data As Object)
        Dim mynum As Integer
        Dim jg As Integer
        mynum = 20
        Try
            For mynum = 20 To -20 Step -1
                jg = 1000 / mynum
                Console.WriteLine(data & ":" & Now.ToLongTimeString & ",1000 / " & mynum & "计算结果为:" & jg)
                Thread.Sleep(1)
            Next
        Catch
            Console.WriteLine(data & ":" & Now.ToLongTimeString & "线程异常终止!")
            '终止线程
            Thread.CurrentThread.Abort()
        End Try
    End Sub
End Module

 

在线程中计算1000/mynum的值,其中mynum从20开始递减,到0时会出现除0异常,调用Thread.CurrentThread.Abort()
完成终止线程的操作

        Try
            For mynum = 20 To -20 Step -1
                jg = 1000 / mynum
                Console.WriteLine(data & ":" & Now.ToLongTimeString & ",1000 / " & mynum & "计算结果为:" & jg)
                Thread.Sleep(1)
            Next
        Catch
            Console.WriteLine(data & ":" & Now.ToLongTimeString & "线程异常终止!")
            '终止线程
            Thread.CurrentThread.Abort()
        End Try

 

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

相关推荐

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

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

oakeil的专栏 878

vb.net 教程 6-14 终止线程的例子

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 在有些时候需要主动终止某个线程,这时可以调用Thread.Abort方法。 例如以下的代码: 使用到的类: Class clsSum2 Public inputNum As Integer Public currentNum As Integer Public outputSum As Integer End Class 主线程代码: Sub sample9() ...

chinaherolts2008的博客 617

Vb.NET与VB6.0的区别

Visual Basic .NET是Microsoft Visual Studio .NET套件中主要组成部分之一。.NET版本的Visual Basic增加了更多特性,而且演化为完全面向对象(就像C++)的编程语言。 1.什么是VB.NET     Microsoft推出全新的编程和操作系统Framework——.NET,支持多种语言利用公共.NET库开发应用程序,这些应用程序在.NET

张晓 2189

VB.NET中多线程程序开发之线程控制

转自:http://tech.ddvip.com/2008-11/122595602689670.html   在了解了线程的各种状态之后,我们来看一下线程控制的一些方法,如下表:  是否需要实例化      方法                说明          是                     Start          使线程开始执行         是

志超的专栏 2855

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

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

weixin_42476987的博客 988

VB.NET 2010多线程编程教程

在当今的软件开发领域,多线程技术是提高应用程序性能和效率的重要手段。VB.NET作为一种成熟且功能强大的编程语言,其对多线程的支持也是强大的和灵活的。本章节旨在为读者提供VB.NET中多线程技术的全面概览,帮助读者建立对VB.NET多线程应用的基础理解。多线程可以实现同时执行多个任务,对于需要处理大量计算或I/O密集型操作的应用程序来说,这是提升用户体验和系统响应速度的关键。VB.NET提供了一系列的工具和对象,比如线程、锁、同步事件以及线程池等,来帮助开发者有效地管理多线程。

weixin_42510201的博客 1244

vb.net中如何结束一个线程

一般而言,如果您想终止一个线程,您可以使用System.Threading.Thread类的Abort方法. 例如: Dim worker As ThreadStart = New ThreadStart(AddressOf workerthreadmethod) Dim t As Thread = New Thread(worker) t.Start() ...

weixin_33887443的博客 992

VB.NET深入:Visual Studio中.NET编程的艺术

本文还有配套的精品资源,点击获取 简介:VB.NET是Microsoft为.NET Framework设计的面向对象编程语言,集成于Visual Studio开发环境。它在Visual Basic 6.0的基础上引入了现代编程特性,支持.NET Framework基础架构,并采用了面向对象编程的核心概念。VB.NET特性包括语言集成查询(LINQ)、自动垃圾回收机制、Windows Forms与WPF桌面应用开发,以及ASP.NET Web开发。此外,还支持ADO.NET数据访问

weixin_29781865的博客 1086

[VB.NET]多线程——取消任务

多线程的一个优点是,应用程序的用户界面部分始终可以作出响应,即使其他线程正在执行任务。同步事件和作为标志的字段通常用于通知其他线程停止。以下示例使用同步事件来取消任务。要使用本示例,请在项目中添加以下模块。要启动线程,请调用 StartCancel.StartTask() 方法。要取消一个或多个正在运行的线程,请调用 StartCancel.CancelTask() 方法。 <!--googl

VB.NET学习网-VB.NET实例、VB.NET教程、VB.NET源码下载 1476

了解随机振动疲劳分析中 Ansys nCode DesignLife 的平均应力校正

通过选择静态环境,我们可以将其结果视为疲劳计算的平均应力,如图 3 所示,因此从静态偏移载荷工况中提取的平均应力用于转移预测雨流计数中所有循环的平均值。您可以通过观看下面的教学视频获得宝贵的见解,该视频将指导您完成利用 Ansys nCode DesignLife 分析平均应力对随机振动载荷下结构的影响的过程。它基于 R 比率或平均应力水平。另一方面,平均应力校正可以帮助消除平均应力的负面影响,提高结果的保真度。Ansys nCode 提供先进的平均应力校正技术,使工程师能够考虑平均应力对疲劳寿命的影响。

jkh920184196的博客 1518

写给音响工程师的科普文章(二)——从模电角度去了解调音台话放

    上一篇讲到调音台第一级放大电路为差分放大器,关于差分放大器的基础知识可以参考以下资料:https://wenku.baidu.com/view/e6a46aaa2af90242a995e537 在教材中的差分放大器基本形式是这样子的,在实际电路中把RE电阻换成两个2倍RE,于是变成这样 然后我们现在来对比调音台中的差分放大器和教材中的有什么区别,我就拿yamaha 01V 96来说...

huanghaoAudio的博客 7699

vb.net 教程 6-7 获得线程状态以及终止线程

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 首先看代码: Dim sample2_workThread As Thread Sub sample2() sample2_workThread = New Thread(AddressOf sample2_printI) sample2_wo...

学习微软 .net 技术开发 2572

告别QQ截图!用C# Winform + 百度AI,自己动手做一个免费的文字提取小工具

本文详细介绍了如何利用C# Winform和百度AI OCR接口开发一款免费的文字提取工具,替代QQ截图功能。通过智能截图模块、OCR服务集成和主界面功能整合,实现高效准确的文字识别,适用于日常办公和学习场景。工具支持图像预处理、异步处理和错误日志记录,提升用户体验和识别准确率。

weixin_30566063的博客 377

VB与VB.NET的区别

刚刚接触VB.NET时,心中一直有一个问号——VB和VB.NET究竟有什么区别呢?经过初步学习后,我觉得可以通过以下五个VB.NET的主要特点来了解VB和VB.NET的区别。        一、VB.NET有两种新的窗体方式---Windows窗体和Web窗体.           VB.NET允许创建不同类型的应用程序,例如,可以创建ASP.NET和ASP.NET Web服务应用

孙端 2万+

解决linux 2.5G网卡驱动问题

解决linux 2.5G网卡驱动问题 关键词:2.5G网卡驱动,ubuntu,安装,2.5G Ethernet LINUX driver,Realtek网卡驱动 由于2.5G网卡较新,各linux发行版的通用驱动已不适用,新装的系统会出现无法上网问题,由于国内网络环境去Realtek官网很难下载到驱动文件,故本文提供github上的2.5G Ethernet LINUX driver r8125 for kernel up to 5.6的版本驱动文件r8125-9.003.05.tar.bz2各位可以自

poorguy_aos的博客 1万+

Scissor算法实战:利用bulkRNA表型数据精准定位单细胞亚群

本文详细介绍了Scissor算法的实战应用,该算法通过整合bulkRNA-seq的丰富表型信息与单细胞数据,精准识别与特定临床结局(如不良预后)相关的单细胞亚群。文章深入解析了算法三步走的核心思想,并提供了适配Seurat v5的完整代码解决方案,帮助研究者从海量数据中提炼具有生物学和临床价值的洞见。

ww90123的博客 253

vb.net 教程 6-15 终止线程更好的例子

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。 由于子线程很多时候都是需要长时间运算(如循环读写)之类,在它循环的时候检测变量状态是否符合,符合则退出循环,完成收尾工作,然后结束该线程。 尽量避免生硬的使用Abort方法。 定义一个模块级变量: Dim abortThread As Boolean 使用到的类: Class clsS...

学习微软 .net 技术开发 1380

第076篇:大涡模拟进阶

大涡模拟(Large Eddy Simulation, LES)是介于直接数值模拟(DNS)和雷诺平均方法(RANS)之间的重要湍流模拟方法。本文深入介绍动态Smagorinsky模型、尺度相似模型、WALE模型和隐式LES等高级亚格子模型。通过Python实现槽道湍流和圆柱绕流的LES求解器,详细展示近壁面处理、动态系数计算和亚格子应力建模技术。大涡模拟,亚格子模型,动态模型,Smagorinsky,WALE模型,尺度相似模型,近壁面处理,槽道湍流LES的核心思想是对Navier-Stokes方程进行空间

2401_87715305的博客 736

VB.NET与VB6.0的区别

VB.NET的视频已经看完了,虽说是VB.NET视频,但是大部分讲的是.NET平台。其实VB.NET就是VB6.0与C#的结合体,VB6.0的语法加上C#的思想。         一、整体                  二、具体         2.1 什么是 VB.NET?  VB.NET是VB6.0的后续版本。Microsoft推出全新的编程和操作系统Framework—

君君的博客 5705

数学与纳米技术:微观世界的数学描述

《数学与纳米技术:微观世界的数学描述》 关键词:纳米技术、数学模型、微观世界、物理现象、计算模拟 摘要:本文探讨了数学在纳米技术领域的应用,从数学基础回顾、纳米技术引论,到物理现象与

AI天才研究院 1531

C++高级数据结构算法 | 二叉树的四种遍历算法详解(递归与非递归实现)

二叉树遍历方法 、前序遍历算法 、中序遍历算法 、后序遍历算法 、层序遍历算法

ZY-JIMMY 2562

VB.NET学习笔记:多线程编程

在《多线程加委托实现等待窗体(loading正在加载界面),运行超时可以取消操作》一文中使用到了多线程编程,在这里做个笔记。 我们继续使用《再谈委托——同步、异步、Lambda 表达式和内置委托》一文的示例代码为本文示例。原文中使用异步委托调用同步方法,即: Private Sub Button1_Click(sender As Object, e As EventArgs) Handles B...

zyjq52uys的博客 4660

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

VB.net创建线程、多线程和破坏线程

转自URL:http://dev.21tx.com/2008/11/06/14125.html   多线程   VB语言的一大弱点就是缺乏编写自由线程(free-threaded)程序的能力。在.net Framework中,所有语言共享CRL(Common Runtime Library,公共运行库),也就是说,你可以用VB.net、C#或其它.NET语言编写同样的程序。   Sy

攻城狮的梦想 2959

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: VB.NET并行与分布式编程(1)-创建与运行线程
下一篇: VB.NET并行与分布式编程(3)-线程局部存储TLS[1]
deepfuture
博客等级 码龄17年 210粉丝 1287原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值