本篇文章為大家展示了VB.NET中怎么并發性判斷線程狀態,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。
當用戶在寫出多線程程序的時候,可能***有挑戰性的就是獨立的線程和程序的其他的部分有并發性。例如,程序中的一個獨立的線程正在處理一系列的名稱,而程序的另一個部分必須等待這個線程完成以后才能進行,通常處理VB.NET并發性的線程的辦法就是判斷線程的狀態或者通過一個事件去標志和得到一個特征值。
最簡單的,也是效率***的方法就是判斷一個線程的IsAlive屬性的值,當一個線程在開始(Start)以前它的屬性IsAlive的值是"False",而在它運行的過程中,它的屬性IsAlive的值是"True"。這種方法并沒有通過一個事件去標志和得到一個特征值可靠,而且如果這樣做的慶,也失去了自由線程的很多優點和便利之處。例如:
while anotherthread.IsAlive=False '一直等待到該線程開始 End While '線程已經開始,現在等待它結束 'While anotherthread.IsAlive=True '等待一直等待到線程結束 End While '作一些線程結束以后的事情
一個更好的處理線程的VB.NET并發性辦法就是使用事件,每一個線程都能夠運行一個事件把它自己的狀態以一個標志的形式給主程序一個值,或者是給其他一個線程一個具有標志自身狀態后個值,這樣當多個線程在運行一個過程的多個拷貝的時候,這些線程都具有自己特有的事件來標志各自的狀態,則在線程之處的程序的其他的部分,就可以通過運行這些事件,得到線程的信息,并且進行下一步的信息的處理。例如:
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的類型必須是可引用的那種類型。
上述內容就是VB.NET中怎么并發性判斷線程狀態,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。