C ThreadState屬性分析

2021-09-06 08:41:47 字數 1373 閱讀 5189

摘自:

c#多執行緒有很多值得學習的地方,這裡我們主要介紹c# threadstate屬性,包括介紹主線程main()函式和執行緒的優先順序等方面。

主線程main()函式

所有執行緒都是依附於main()函式所在的執行緒的,main()函式是c#程式的入口,起始執行緒可以稱之為主線程。如果所有的前台執行緒都停止了,那麼主線程可以終止,而所有的後台執行緒都將無條件終止。所有的執行緒雖然在微觀上是序列執行的,但是在巨集觀上你完全可以認為它們在並行執行。

c# threadstate屬性

這個屬性代表了執行緒執行時狀態,在不同的情況下有不同的值,我們有時候可以通過對該值的判斷來設計程式流程。

c# 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;  

通過設定執行緒的優先順序,我們可以安排一些相對重要的執行緒優先執行,例如對使用者的響應等等。

關於css3 分欄 column屬性

首先關於column的使用要注意你使用的是哪種瀏覽器的問題。1.columns columns 100px 2 你也可以這樣定義 column width 100px column count 2 一看相信大家都明白是什麼意思了。第乙個代表欄的寬度,第二個代表欄的數目。這兩個屬性值回隨著其他引數的改...

CSS屬性 背景屬性 or 浮動屬性

background color red background image url background repeat no repeat repeat repeat x repeat y background position 水平位置 垂直位置 可以給負值 background attachme...

CSS語法手冊(六)分類屬性

1 display 功能 改變元素的顯示值,可以將元素型別線上,塊和清單專案相互變換。數值 none 不顯示元素 block 塊顯示,在元素前後設定分行符 inline 刪除元素前後的分行符,使其併入其它元素流中 list item 將元素設定為清單中的一行 說明 可用 display 屬性值生成插...