人人做人人澡人人爽欧美,国产主播一区二区,久久久精品五月天,羞羞视频在线观看免费

當前位置:蘿卜系統下載站 > 技術開發教程 > 詳細頁面

C#的多線程機制探索(續1)

C#的多線程機制探索(續1)

更新時間:2022-10-14 文章作者:未知 信息來源:網絡 閱讀次數:

在這里我們要注意的是其它線程都是依附于Main()函數所在的線程的,Main()函數是C#程序的入口,起始線程可以稱之為主線程,如果所有的前臺線程都停止了,那么主線程可以終止,而所有的后臺線程都將無條件終止。而所有的線程雖然在微觀上是串行執行的,但是在宏觀上你完全可以認為它們在并行執行。

讀者一定注意到了Thread.ThreadState這個屬性,這個屬性代表了線程運行時狀態,在不同的情況下有不同的值,于是我們有時候可以通過對該值的判斷來設計程序流程。ThreadState在各種情況下的可能取值如下:

  • Aborted:線程已停止
  • AbortRequested:線程的Thread.Abort()方法已被調用,但是線程還未停止
  • Background:線程在后臺執行,與屬性Thread.IsBackground有關
  • Running:線程正在正常運行
  • Stopped:線程已經被停止
  • StopRequested:線程正在被要求停止
  • Suspended:線程已經被掛起(此狀態下,可以通過調用Resume()方法重新運行)
  • SuspendRequested:線程正在要求被掛起,但是未來得及響應
  • Unstarted:未調用Thread.Start()開始線程的運行
  • WaitSleepJoin:線程因為調用了Wait(),Sleep()或Join()等方法處于封鎖狀態
上面提到了Background狀態表示該線程在后臺運行,那么后臺運行的線程有什么特別的地方呢?其實后臺線程跟前臺線程只有一個區別,那就是后臺線程不妨礙程序的終止。一旦一個進程所有的前臺線程都終止后,CLR(通用語言運行環境)將通過調用任意一個存活中的后臺進程的Abort()方法來徹底終止進程。

當線程之間爭奪CPU時間時,CPU按照是線程的優先級給予服務的。在C#應用程序中,用戶可以設定5個不同的優先級,由高到低分別是Highest,AboveNormal,Normal,BelowNormal,Lowest,在創建線程時如果不指定優先級,那么系統默認為ThreadPriority.Normal。給一個線程指定優先級
,我們可以使用如下代碼:

//設定優先級為最低
myThread.Priority=ThreadPriority.Lowest;

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 泉州市| 连云港市| 天津市| 新干县| 湖南省| 昭平县| 福泉市| 宣恩县| 闽侯县| 金华市| 禄劝| 买车| 大关县| 新蔡县| 嘉义市| 广宁县| 原平市| 临猗县| 辉县市| 巴里| 犍为县| 锡林浩特市| 喀什市| 渝北区| 山丹县| 石家庄市| 穆棱市| 巫溪县| 鄱阳县| 唐河县| 博爱县| 呼玛县| 安康市| 余庆县| 清镇市| 吉安市| 佛教| 汉中市| 钟祥市| 长岭县| 云林县|