亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > C# > 正文

C#多線程學習之(二)操縱一個線程的方法

2020-01-24 02:01:47
字體:
來源:轉載
供稿:網友

本文實例講述了C#多線程學習之操縱一個線程的方法。分享給大家供大家參考。具體實現方法如下:

下面我們就動手來創建一個線程,使用Thread類創建線程時,只需提供線程入口即可。(線程入口使程序知道該讓這個線程干什么事)

在C#中,線程入口是通過ThreadStart代理(delegate)來提供的,你可以把ThreadStart理解為一個函數指針,指向線程要執行的函數,當調用Thread.Start()方法后,線程就開始執行ThreadStart所代表或者說指向的函數。

打開你的VS.net,新建一個控制臺應用程序(Console Application),編寫完全控制一個線程的代碼示例:

//ThreadTest.cs using System;using System.Threading; namespace ThreadTest{public class Alpha{public void Beta(){while (true){Console.WriteLine("Alpha.Beta is running in its own thread.");}}}; public class Simple{public static int Main(){Console.WriteLine("Thread Start/Stop/Join Sample");Alpha oAlpha = new Alpha();file://這里創建一個線程,使之執行Alpha類的Beta()方法Thread oThread = new Thread(new ThreadStart(oAlpha.Beta));oThread.Start();while (!oThread.IsAlive)  Thread.Sleep(1);oThread.Abort();oThread.Join();Console.WriteLine();Console.WriteLine("Alpha.Beta has finished"); try {Console.WriteLine("Try to restart the Alpha.Beta thread");oThread.Start();}catch (ThreadStateException) {Console.Write("ThreadStateException trying to restart Alpha.Beta. ");Console.WriteLine("Expected since aborted threads cannot be restarted.");Console.ReadLine();}return 0;}}}

這段程序包含兩個類Alpha和Simple,在創建線程oThread時我們用指向 Alpha.Beta()方法的初始化了ThreadStart代理(delegate)對象,當我們創建的線程oThread調用 oThread.Start()方法啟動時,實際上程序運行的是Alpha.Beta()方法:

Alpha oAlpha = new Alpha();Thread oThread = new Thread(newThreadStart(oAlpha.Beta));oThread.Start();

然后在Main()函數的while循環中,我們使用靜態方法Thread.Sleep()讓 主線程停了1ms,這段時間CPU轉向執行線程oThread。然后我們試圖用Thread.Abort()方法終止線程oThread,注意后面的 oThread.Join(),Thread.Join()方法使主線程等待,直到oThread線程結束。你可以給Thread.Join()方法指定 一個int型的參數作為等待的最長時間。之后,我們試圖用Thread.Start()方法重新啟動線程oThread,但是顯然Abort()方法帶來 的后果是不可恢復的終止線程,所以最后程序會拋出ThreadStateException異常。

主線程Main()函數

所有線程都是依附于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;

通過設定線程的優先級,我們可以安排一些相對重要的線程優先執行,例如對用戶的響應等等。

希望本文所述對大家的C#程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
波霸ol色综合久久| 96国产粉嫩美女| 2019中文字幕免费视频| 欧美视频中文在线看| 98视频在线噜噜噜国产| 亚洲天堂开心观看| 日韩精品高清视频| 精品中文字幕久久久久久| 日韩欧美国产视频| 精品一区二区三区四区在线| 国产日韩av在线| 成人精品一区二区三区电影免费| 亚洲国产精品99| 国产精品美女主播在线观看纯欲| 97在线视频国产| 久久精品国产69国产精品亚洲| 亚洲乱亚洲乱妇无码| 欧美激情2020午夜免费观看| 久久久免费精品视频| 欧美孕妇性xx| 国产精品揄拍500视频| 九九热最新视频//这里只有精品| 日韩欧美精品网站| 国产97色在线| 欧美性猛交xxxx黑人猛交| 欧美成人第一页| 国产免费久久av| 日韩av理论片| 日韩最新中文字幕电影免费看| 精品精品国产国产自在线| 九九视频这里只有精品| 久久躁日日躁aaaaxxxx| 精品电影在线观看| 成人av在线天堂| 日韩欧美国产激情| 欧美性猛交99久久久久99按摩| 国产一区二区三区在线看| 国产美女高潮久久白浆| 久久精品国产欧美激情| 日韩在线观看电影| 亚洲精品一二区| 8090成年在线看片午夜| 国产精品亚洲自拍| 日韩电影中文字幕在线观看| 国产精品视频一区二区高潮| 97视频在线观看视频免费视频| 夜夜嗨av一区二区三区四区| 91精品国产色综合久久不卡98| 亚洲欧美日韩久久久久久| 亚洲视频电影图片偷拍一区| 国产成人精品亚洲精品| 欧美亚洲成人精品| 亚洲黄页视频免费观看| 欧美激情小视频| 韩国福利视频一区| 欧美日韩激情视频| 国产午夜精品视频| 精品精品国产国产自在线| 久久久亚洲欧洲日产国码aⅴ| 一区二区三区回区在观看免费视频| 久久人人爽亚洲精品天堂| 8x拔播拔播x8国产精品| 久久久视频在线| 91精品国产乱码久久久久久蜜臀| 国产成人自拍视频在线观看| 欧美肥老妇视频| 日韩国产一区三区| 日韩精品在线第一页| 成人网在线免费看| 久久久久久国产精品三级玉女聊斋| 亚洲精品成人免费| 亚洲女人天堂成人av在线| 久久久精品欧美| 国产精品久久久久久久久久久久久| 亚洲精品美女免费| 91在线观看免费网站| 亚洲一区二区三区乱码aⅴ蜜桃女| 久久伊人色综合| 色吧影院999| 亚洲精品中文字幕有码专区| 日韩中文字幕在线精品| 亚洲精品99999| 久久亚洲一区二区三区四区五区高| 亚洲高清不卡av| 国产精品久久久久久久久久久久| 久久偷看各类女兵18女厕嘘嘘| 国产91精品久久久久久久| 91精品国产91久久久久福利| 日韩国产在线看| 亚洲福利视频网| 日韩电影中文字幕在线| 久久理论片午夜琪琪电影网| 亚洲天堂男人的天堂| 成人久久久久久久| 国产精品网红福利| 深夜福利91大全| 欧美综合在线观看| 久久精品成人欧美大片古装| 欧美一级黄色网| 亚洲精品美女久久久| 欧美综合激情网| 欧美日韩黄色大片| 国产日韩av在线| 欧美一区在线直播| 欧美性生活大片免费观看网址| 丰满岳妇乱一区二区三区| 久久视频在线观看免费| 26uuu亚洲国产精品| 精品久久久久久国产| 精品久久久久久久久久国产| 欧美一区二区三区精品电影| 深夜福利一区二区| 国产精品av在线播放| 欧美国产在线电影| 欧美野外猛男的大粗鳮| 欧美在线免费看| 成人免费淫片视频软件| 午夜精品蜜臀一区二区三区免费| 国产有码在线一区二区视频| 欧美精品videos另类日本| 国产极品jizzhd欧美| 精品成人久久av| 一区二区在线视频| 91久久嫩草影院一区二区| 热99精品只有里视频精品| 亚洲国产精品嫩草影院久久| 国产亚洲xxx| 亚洲女在线观看| 成人av.网址在线网站| 日韩免费观看高清| 国产美女精品视频| 亚洲欧美日韩国产成人| 亚洲精品久久久久久久久久久久久| 亚洲女人天堂网| 国产精品日日摸夜夜添夜夜av| 欧美精品video| 国产亚洲a∨片在线观看| 日本19禁啪啪免费观看www| 免费av一区二区| 一区二区三区www| 国内精品久久久久久中文字幕| 亚洲免费小视频| 欧洲精品毛片网站| 日韩电影中文 亚洲精品乱码| 欧美日韩ab片| 久久精品视频免费播放| 国产一区视频在线播放| 国产精品av电影| 亚洲电影免费观看高清完整版在线| 国产精品网站入口| 最近2019年中文视频免费在线观看| 成人免费视频a| 国产精品色悠悠| 成人精品视频99在线观看免费| 日韩视频免费大全中文字幕| 精品久久久久久亚洲国产300| 久久久久久久久久久成人| 欧美在线精品免播放器视频| 欧美性猛交99久久久久99按摩| 国产偷国产偷亚洲清高网站| 在线观看日韩欧美| 久久久久久久香蕉网| 国产精品电影网| 51午夜精品视频|