C#多線程的Join()方法
一、簡介
Join方法主要是用來阻塞調(diào)用線程,直到某個線程終止或經(jīng)過了指定時間為止。官方的解釋比較乏味,通俗的說就是創(chuàng)建一個子線程,給它加了這個方法,其它線程就會暫停執(zhí)行,直到這個線程執(zhí)行完為止才去執(zhí)行(包括主線程)。
二、代碼
class Program { static void Main(string[] args) { Thread threadA = new Thread(ThreadMethod); threadA.Name = "線程A"; Thread threadB = new Thread(ThreadMethod); threadB.Name = "線程B"; threadA.Start(); //threadA.Join(); threadB.Start(); //threadB.Join(); for (int i = 1; i <=3; i++) { Console.WriteLine("我是:主線程,我循環(huán){1}次", Thread.CurrentThread.Name, i); Thread.Sleep(300); //休眠300毫秒 } Console.ReadKey(); } public static void ThreadMethod(object parameter) { for (int i = 1; i <=3; i++) { Console.WriteLine("我是:{0},我循環(huán){1}次", Thread.CurrentThread.Name, i); Thread.Sleep(300); //休眠300毫秒 } } }
三、運行結(jié)果
因為線程之間的執(zhí)行是隨機的,所有執(zhí)行結(jié)果和我們想象的一樣,雜亂無章!但是說明他們是同時執(zhí)行的。
現(xiàn)在我們把代碼中的 ThreadA.join()和ThreadB.join()方法注釋取消,首先程序中有三個線程,ThreadA、ThreadB和主線程,首先主線程先阻塞,然后線程ThreadB阻塞,ThreadA先執(zhí)行,執(zhí)行完畢以后ThreadB接著執(zhí)行,最后才是主線程執(zhí)行。
到此這篇關(guān)于C#多線程Join()方法的文章就介紹到這了。希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用C#實現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的基本示例
這篇文章主要介紹了使用C#實現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的示例,文中分別編寫了基本的服務(wù)器端和客戶端,代碼十分簡單,需要的朋友可以參考下2016-04-04C#實現(xiàn)DataTable映射成Model的方法(附源碼)
這篇文章主要介紹了C#實現(xiàn)DataTable映射成Model的方法,以實例形式較為詳細的分析了DataTable映射成Model的具體步驟與相關(guān)技巧,并附帶了完整實例源碼供讀者下載,需要的朋友可以參考下2015-11-11HashTable、HashSet和Dictionary的區(qū)別點總結(jié)
在本篇文章里小編給大家整理的是關(guān)于HashTable、HashSet和Dictionary的區(qū)別點,需要的朋友們可以學習下。2020-03-03