溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

怎么.Net項目中實現(xiàn)一個多線程

發(fā)布時間:2020-12-21 15:59:01 來源:億速云 閱讀:309 作者:Leah 欄目:開發(fā)技術(shù)

怎么.Net項目中實現(xiàn)一個多線程?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。

1.簡述

  一般一個程序一個進(jìn)程,代碼是存在進(jìn)程中的,進(jìn)程本身不執(zhí)行代碼, 執(zhí)行代碼的是線程。

  一般一個進(jìn)程里就一個線程。(一個商店就一個老板娘。)

  進(jìn)程就是在內(nèi)存中開辟了一個空間。代碼,圖片。。等就存在這個空間里。代碼線程去執(zhí)行。

  默認(rèn)只有一個線程。

復(fù)制代碼 代碼如下:


systerm.threading //線程操作的類在這個命名空間下。

2.前臺線程與后臺線程。

  開啟一個線程,就是創(chuàng)建一個線程對象即可。

  線程默認(rèn)情況下都是前臺線程。

  要把所有的前臺線程執(zhí)行完后,程序才會退出。

  進(jìn)程里默認(rèn)的線程叫主線程或者默認(rèn)線程,或UI線程。

  后臺線程,只要所有的前臺線程結(jié)束,所有的后臺線程就直接結(jié)束。

復(fù)制代碼 代碼如下:


Thread th = new Thread(Sum);
th.Name ="線程1";    給線程取名。調(diào)試的時候可以在輸出中看到具體名稱。
th.IsBackground = true;  
th.Start(); 
th.Abort();   強(qiáng)行終止線程。
Thread.Sleep(1000);  暫停線程,單位是毫秒
Thread cuTh = Thread.CurrentThread  得到當(dāng)前線程的引用。Thread類型。
TextBox.CheckForIllegalCrossThreadCalls = false; //關(guān)閉空間的跨線程訪問檢查。 否則會出現(xiàn)如下錯誤

怎么.Net項目中實現(xiàn)一個多線程 

3.線程重入

  同一個進(jìn)程中的多個線程之間可以“并發(fā)”執(zhí)行。

  多個線程訪問同一資源, 可能造成不同步的情況,這個叫做線程重入。

  應(yīng)對此情況,可加鎖處理。

復(fù)制代碼 代碼如下:


private void CountNum()
        {
            lock (this)
            {
                for (int i = 0; i < 10000; i++)
                {
                    int num = int.Parse(textBox1.Text.Trim());
                    num++;
                    textBox1.Text = num.ToString();
                }
            }
        }

4.線程對象本質(zhì)(委托) 

4.1 無參方法  怎么.Net項目中實現(xiàn)一個多線程   

需要傳一個委托對象。

復(fù)制代碼 代碼如下:

ThreadStart ts = new ThreadStart(CountNum); Thread th = new Thread(ts); 等價于 Thread th = new Thread(CountNum); 本質(zhì)傳的是一個委托對象。 (CountNum是無參方法)

4.2 有參方法

  如果需要傳有參方法。

  則是創(chuàng)建的ParameterizedThreadStart 的委托對象。

怎么.Net項目中實現(xiàn)一個多線程

  傳參是在Start方法中傳入;start方法有兩個重載。

怎么.Net項目中實現(xiàn)一個多線程

看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI