VB.NET并发性判断线程状态

开发 后端
VB.NET并发性的处理方式其实可以被看做是对一个线程状态的判断。或者是去得到一个特定的特征值。我们会在文中给出详细的应用操作方法。

VB.NET编程语言的到来,在一定程度上改变了开发人员的编程方式,提高了编程效率,并且增加了程序开发的安全性。我们今天要为大家介绍的则是VB.NET并发性的一些作用,希望能给大家带来一些帮助。#t#

当用户在写出多线程程序的时候,可能***有挑战性的就是独立的线程和程序的其他的部分有并发性。例如,程序中的一个独立的线程正在处理一系列的名称,而程序的另一个部分必须等待这个线程完成以后才能进行,通常处理VB.NET并发性的线程的办法就是判断线程的状态或者通过一个事件去标志和得到一个特征值。

最简单的,也是效率***的方法就是判断一个线程的IsAlive属性的值,当一个线程在开始(Start)以前它的属性IsAlive的值是"False",而在它运行的过程中,它的属性IsAlive的值是"True"。这种方法并没有通过一个事件去标志和得到一个特征值可靠,而且如果这样做的庆,也失去了自由线程的很多优点和便利之处。例如:

  1. while anotherthread.IsAlive=False 
  2. '一直等待到该线程开始  
  3. End While  
  4. '线程已经开始,现在等待它结束  
  5. 'While anotherthread.IsAlive=True 
  6. '等待一直等待到线程结束  
  7. End While  
  8. '作一些线程结束以后的事情 

一个更好的处理线程的VB.NET并发性办法就是使用事件,每一个线程都能够运行一个事件把它自己的状态以一个标志的形式给主程序一个值,或者是给其他一个线程一个具有标志自身状态后个值,这样当多个线程在运行一个过程的多个拷贝的时候,这些线程都具有自己特有的事件来标志各自的状态,则在线程之处的程序的其他的部分,就可以通过运行这些事件,得到线程的信息,并且进行下一步的信息的处理。例如:

  1. Public Event Status(Byval 
    ThreaStatus As Integer,
    Byval ThreadID As Integer) 

VB.NET 提供了SyncLock表述来使得在一个expression中一些statements可以具有VB.NET并发性,这保证了多个线程在运行时不在同一时间里,运行相同的statements,当进入了SyncLock模块,共享的方法System.Monitor.Enter将在特定的expression下运行,一直到这个特定的线程对expression返回的对象有exclusive Lock以后,模块中的代码才会停止运行。

注意:expression的类型必须是可引用的那种类型。

责任编辑:曹凯 来源: 编程入门网
相关推荐

2010-01-22 18:32:23

VB.NET数据并发性

2009-10-12 13:32:58

VB.NET线程构造器

2009-10-12 13:11:48

VB.NET使用线程

2009-10-12 13:19:14

VB.NET线程同步

2010-01-08 17:12:03

VB.NET短路判断

2010-01-18 18:06:07

VB.NET多线程

2009-10-23 09:26:09

VB.NET多线程

2009-10-10 16:15:49

VB.NET开发多线程

2009-10-20 10:59:32

VB.NET编程

2010-01-08 10:48:05

VB.NET多线程

2011-06-17 11:05:22

VB.NET

2009-06-24 15:45:32

VB.NET

2009-10-29 14:02:24

VB和VB.NET比较

2009-10-20 14:21:55

VB.NET fnSi

2009-10-14 12:51:41

VB.NET Data

2009-10-20 10:23:08

VB.NET多线程编程

2009-10-27 12:20:06

VB.NET多线程应用

2009-11-02 17:12:01

VB和VB.NET

2009-08-28 16:16:02

线程运行状态

2010-01-21 14:27:46

VB.NET判断数组维
点赞
收藏

51CTO技术栈公众号