C#多線(xiàn)程的Join()方法
一、簡(jiǎn)介
Join方法主要是用來(lái)阻塞調(diào)用線(xiàn)程,直到某個(gè)線(xiàn)程終止或經(jīng)過(guò)了指定時(shí)間為止。官方的解釋比較乏味,通俗的說(shuō)就是創(chuàng)建一個(gè)子線(xiàn)程,給它加了這個(gè)方法,其它線(xiàn)程就會(huì)暫停執(zhí)行,直到這個(gè)線(xiàn)程執(zhí)行完為止才去執(zhí)行(包括主線(xiàn)程)。
二、代碼
class Program
{
static void Main(string[] args)
{
Thread threadA = new Thread(ThreadMethod);
threadA.Name = "線(xiàn)程A";
Thread threadB = new Thread(ThreadMethod);
threadB.Name = "線(xiàn)程B";
threadA.Start();
//threadA.Join();
threadB.Start();
//threadB.Join();
for (int i = 1; i <=3; i++)
{
Console.WriteLine("我是:主線(xiàn)程,我循環(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毫秒
}
}
}三、運(yùn)行結(jié)果
因?yàn)榫€(xiàn)程之間的執(zhí)行是隨機(jī)的,所有執(zhí)行結(jié)果和我們想象的一樣,雜亂無(wú)章!但是說(shuō)明他們是同時(shí)執(zhí)行的。

現(xiàn)在我們把代碼中的 ThreadA.join()和ThreadB.join()方法注釋取消,首先程序中有三個(gè)線(xiàn)程,ThreadA、ThreadB和主線(xiàn)程,首先主線(xiàn)程先阻塞,然后線(xiàn)程ThreadB阻塞,ThreadA先執(zhí)行,執(zhí)行完畢以后ThreadB接著執(zhí)行,最后才是主線(xiàn)程執(zhí)行。

到此這篇關(guān)于C#多線(xiàn)程Join()方法的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
c#同步兩個(gè)子目錄文件示例分享 兩個(gè)文件夾同步
這篇文章主要介紹了使用c#同步兩個(gè)子目錄文件的方法,大家參考使用吧2014-01-01
使用C#實(shí)現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的基本示例
這篇文章主要介紹了使用C#實(shí)現(xiàn)基于TCP和UDP協(xié)議的網(wǎng)絡(luò)通信程序的示例,文中分別編寫(xiě)了基本的服務(wù)器端和客戶(hù)端,代碼十分簡(jiǎn)單,需要的朋友可以參考下2016-04-04
C#實(shí)現(xiàn)DataTable映射成Model的方法(附源碼)
這篇文章主要介紹了C#實(shí)現(xiàn)DataTable映射成Model的方法,以實(shí)例形式較為詳細(xì)的分析了DataTable映射成Model的具體步驟與相關(guān)技巧,并附帶了完整實(shí)例源碼供讀者下載,需要的朋友可以參考下2015-11-11
HashTable、HashSet和Dictionary的區(qū)別點(diǎn)總結(jié)
在本篇文章里小編給大家整理的是關(guān)于HashTable、HashSet和Dictionary的區(qū)別點(diǎn),需要的朋友們可以學(xué)習(xí)下。2020-03-03
C#實(shí)現(xiàn)簡(jiǎn)單的Login窗口實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)簡(jiǎn)單的Login窗口,實(shí)例分析了C#顯示及關(guān)閉登陸Login窗口的技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08

