新聞中心
本文轉(zhuǎn)載自微信公眾號「UP技術(shù)控」,作者conan5566。轉(zhuǎn)載本文請聯(lián)系UP技術(shù)控公眾號。

伊吾網(wǎng)站制作公司哪家好,找成都創(chuàng)新互聯(lián)公司!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、響應(yīng)式網(wǎng)站開發(fā)等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。成都創(chuàng)新互聯(lián)公司自2013年起到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選成都創(chuàng)新互聯(lián)公司。
創(chuàng)建線程
線程是通過擴(kuò)展 Thread 類創(chuàng)建的。擴(kuò)展的 Thread 類調(diào)用 Start() 方法來開始子線程的執(zhí)行。
下面的程序演示了這個概念:
- class ThreadCreationProgram
- {
- public static void CallToChildThread()
- {
- Console.WriteLine("Child thread starts");
- }
- static void Main(string[] args)
- {
- ThreadStart childref = new ThreadStart(CallToChildThread);
- Console.WriteLine("In Main: Creating the Child thread");
- Thread childThread = new Thread(childref);
- childThread.Start();
- Console.ReadKey();
- }
- }
當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
- In Main: Creating the Child thread
- Child thread starts
管理線程
Thread 類提供了各種管理線程的方法。
下面的實(shí)例演示了 sleep() 方法的使用,用于在一個特定的時間暫停線程。
- class ThreadCreationProgram
- {
- public static void CallToChildThread()
- {
- Console.WriteLine("Child thread starts");
- // 線程暫停 5000 毫秒
- int sleepfor = 5000;
- Console.WriteLine("Child Thread Paused for {0} seconds",
- sleepfor / 1000);
- Thread.Sleep(sleepfor);
- Console.WriteLine("Child thread resumes");
- }
- static void Main(string[] args)
- {
- ThreadStart childref = new ThreadStart(CallToChildThread);
- Console.WriteLine("In Main: Creating the Child thread");
- Thread childThread = new Thread(childref);
- childThread.Start();
- Console.ReadKey();
- }
- }
當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
- In Main: Creating the Child thread
- Child thread starts
- Child Thread Paused for 5 seconds
- Child thread resumes
銷毀線程
Abort() 方法用于銷毀線程。
通過拋出 threadabortexception 在運(yùn)行時中止線程。這個異常不能被捕獲,如果有 finally 塊,控制會被送至 finally 塊。
下面的程序說明了這點(diǎn):
- class ThreadCreationProgram
- {
- public static void CallToChildThread()
- {
- try
- {
- Console.WriteLine("Child thread starts");
- // 計數(shù)到 10
- for (int counter = 0; counter <= 10; counter++)
- {
- Thread.Sleep(500);
- Console.WriteLine(counter);
- }
- Console.WriteLine("Child Thread Completed");
- }
- catch (ThreadAbortException e)
- {
- Console.WriteLine("Thread Abort Exception");
- }
- finally
- {
- Console.WriteLine("Couldn't catch the Thread Exception");
- }
- }
- static void Main(string[] args)
- {
- ThreadStart childref = new ThreadStart(CallToChildThread);
- Console.WriteLine("In Main: Creating the Child thread");
- Thread childThread = new Thread(childref);
- childThread.Start();
- // 停止主線程一段時間
- Thread.Sleep(2000);
- // 現(xiàn)在中止子線程
- Console.WriteLine("In Main: Aborting the Child thread");
- childThread.Abort();
- Console.ReadKey();
- }
- }
當(dāng)上面的代碼被編譯和執(zhí)行時,它會產(chǎn)生下列結(jié)果:
- In Main: Creating the Child thread
- Child thread starts
- 0
- 1
- 2
- In Main: Aborting the Child thread
- Thread Abort Exception
- Couldn't catch the Thread Exception
文章標(biāo)題:聊聊Thread類線程常用操作
文章轉(zhuǎn)載:http://www.dlmjj.cn/article/dpisdoe.html


咨詢
建站咨詢
