自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

簡(jiǎn)單介紹VB.NET線程同步

開(kāi)發(fā) 后端
這里介紹在VB.NET線程同步方面,VB.NET提供了幾個(gè)方法。在上面的平方例子中,你要與執(zhí)行計(jì)算的VB.NET線程同步,以便等待它執(zhí)行完并且得到結(jié)果。

學(xué)習(xí)VB.NET時(shí),經(jīng)常會(huì)遇到VB.NET線程同步問(wèn)題,這里將介紹VB.NET線程同步問(wèn)題的解決方法,在這里拿出來(lái)和大家分享一下。

VB.NET線程同步

在VB.NET線程同步方面,VB.NET提供了幾個(gè)方法。在上面的平方例子中,你要與執(zhí)行計(jì)算的VB.NET線程同步,以便等待它執(zhí)行完并且得到結(jié)果。另一個(gè)例子是,如果你在其它線程中排序一個(gè)數(shù)組,那么在使用該數(shù)組前,你必須等待該處理完成。為了進(jìn)行這些同步,VB.NET提供了SyncLock聲明和 Thread.Join方法。

SyncLock可得到一個(gè)對(duì)象引用的***鎖,只要將該對(duì)象傳送給SyncLock就行了。通過(guò)得到這個(gè)***鎖,你可以確保多個(gè)線程不會(huì)訪問(wèn)共享的數(shù)據(jù)或者在多個(gè)線程上執(zhí)行的代碼。要得到一個(gè)鎖,可使用一個(gè)較為便利的對(duì)象--與每個(gè)類(lèi)關(guān)聯(lián)的System.Type對(duì)象。System.Type對(duì)象可通過(guò)使用GetType方法得到:

  1. Public Sub CalcSquare()  
  2. SyncLock GetType(SquareClass)  
  3. Square = Value * Value  
  4. End SyncLock  
  5. End Sub 

另一個(gè)是Thread.Join方法,它可讓你等待一個(gè)特定的時(shí)間,直到一個(gè)線程完成。如果該線程在你指定的時(shí)間前完成了,Thread.Join將返回 True,否則它返回False。在平方的例子中,如果你不想使用觸發(fā)事件的方法,你可以調(diào)用Thread.Join的方法來(lái)決定計(jì)算是否完成了。代碼如下所示:

  1. Private Sub Button1_Click(ByVal sender As System.Object, 
    _ByVal e As System.EventArgs) Handles Button1.Click  
  2. Dim oSquare As New SquareClass()  
  3. t = New Thread(AddressOf oSquare.CalcSquare)  
  4. oSquare.Value = 30 
  5. t.Start()  
  6. If t.Join(500) Then  
  7. MsgBox(oSquare.Square)  
  8. End If  
  9. End Sub 

對(duì)于這種方法,要注意的是處理事件的過(guò)程,在這個(gè)例子中的是SquareEventHandler,將運(yùn)行在產(chǎn)生該事件的線程中。它并不是運(yùn)行在表格執(zhí)行的線程中。

【編輯推薦】

  1. 詳細(xì)講述VB.NET開(kāi)發(fā)控件
  2. VB.NET Control類(lèi)的屬性和方法
  3. 解析VB.NET如何連接數(shù)據(jù)庫(kù)
  4. VB.NET應(yīng)用程序中多線程的應(yīng)用實(shí)例
  5. 淺析VB.NET程序?qū)W習(xí)經(jīng)驗(yàn)
責(zé)任編輯:佚名 來(lái)源: 博文
相關(guān)推薦

2009-11-10 10:28:20

VB.NET誕生

2009-10-12 13:11:48

VB.NET使用線程

2009-08-18 16:57:24

VB.NET和C#

2009-11-02 10:36:16

VB.NET Sub

2010-01-07 16:40:13

VB.NET一維數(shù)組

2009-10-28 09:55:29

VB.NET MyCl

2009-10-16 13:26:53

VB.NET Exce

2010-01-11 18:32:42

VB.NET序列化

2009-10-23 17:22:48

VB.NET編程

2009-10-20 10:23:08

VB.NET多線程編程

2009-11-03 14:13:23

VB.NET C#

2009-10-12 15:02:51

VB.NET動(dòng)態(tài)控件

2010-01-21 16:45:00

VB.NET繼承規(guī)則

2010-01-07 15:25:11

VB.NET數(shù)組

2009-10-09 17:40:38

VB.Net問(wèn)題集

2009-10-15 09:02:19

VB.NET申明數(shù)組

2009-10-14 13:56:05

VB.NET數(shù)據(jù)窗體

2010-01-15 15:39:14

VB.NET Sub過(guò)

2009-10-13 14:38:10

VB.NET訪問(wèn)類(lèi)型

2009-10-23 13:10:14

VB.NET List
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)