国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

.Net 多線程小結(jié)

2019-11-17 01:55:26
字體:
供稿:網(wǎng)友

.Net 多線程小結(jié)

1.簡述

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

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

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

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

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

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

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

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

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

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

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

Thread th = new Thread(Sum);th.Name ="線程1";    給線程取名。調(diào)試的時(shí)候可以在輸出中看到具體名稱。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)如下錯(cuò)誤

3.線程重入

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

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

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

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 無參方法

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

4.2 有參方法

  如果需要傳有參方法。

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

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


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 子长县| 洪江市| 万源市| 定州市| 黑河市| 秭归县| 霍城县| 屏东市| 镶黄旗| 梁河县| 瓮安县| 盐亭县| 威信县| 岳池县| 东乌珠穆沁旗| 雅江县| 萍乡市| 历史| 绵阳市| 咸阳市| 茌平县| 天柱县| 西贡区| 陵水| 无锡市| 大悟县| 南宁市| 龙川县| 濮阳市| 临朐县| 闵行区| 满城县| 广州市| 泰州市| 忻州市| 吉水县| 定安县| 方山县| 定襄县| 清涧县| 保山市|