91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C# .NET多線程應用舉例分析

發布時間:2021-12-03 10:14:08 來源:億速云 閱讀:151 作者:iii 欄目:編程語言

這篇文章主要介紹“C# .NET多線程應用舉例分析”,在日常操作中,相信很多人在C# .NET多線程應用舉例分析問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”C# .NET多線程應用舉例分析”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

a.啟動線程

顧名思義,“啟動線程”就是新建并啟動一個線程的意思,如下代碼可實現:   

Thread thread1 = new Thread(new ThreadStart( Count));

其中的 Count 是將要被新線程執行的函數。

b.殺死線程

“殺死線程”就是將一線程斬草除根,為了不白費力氣,在殺死一個線程前***先判斷它是否還活著(通過 IsAlive 屬性),然后就可以調用 Abort 方法來殺死此線程。

c.暫停線程

它的意思就是讓一個正在運行的線程休眠一段時間。如 thread.Sleep(1000); 就是讓線程休眠1秒鐘。

d.優先級

這個用不著解釋了。Thread類中有一個ThreadPriority屬性,它用來設置優先級,但不能保證操作系統會接受該優先級。一個線程的優先級可分為5種:Normal, AboveNormal, BelowNormal, Highest, Lowest。具體實現例子如下: 

thread.Priority = ThreadPriority.Highest;

e.掛起線程

Thread類的Suspend方法用來掛起線程,知道調用Resume,此線程才可以繼續執行。如果線程已經掛起,那就不會起作用。

if (thread.ThreadState = ThreadState.Running)  {       thread.Suspend();  }

f.恢復線程

用來恢復已經掛起的線程,以讓它繼續執行,如果線程沒掛起,也不會起作用。

if (thread.ThreadState = ThreadState.Suspended)  {       thread.Resume();  }

下面將列出一個例子,以說明簡單的線程處理功能。此例子來自于幫助文檔。

using System;  using System.Threading;   // Simple threading scenario:  Start a static method running  // on a second thread.  public class ThreadExample {      // The ThreadProc method is called when the thread starts.      // It loops ten times, writing to the console and yielding      // the rest of its time slice each time, and then ends.      public static void ThreadProc() {          for (int i = 0; i <  10; i++) {              Console.WriteLine("ThreadProc: {0}", i);              // Yield the rest of the time slice.              Thread.Sleep(0);          }      }       public static void Main() {          Console.WriteLine("Main thread: Start a second thread.");          // The constructor for the Thread class requires a ThreadStart          // delegate that represents the method to be executed on the          // thread.  C# simplifies the creation of this delegate.          Thread t = new Thread(new ThreadStart(ThreadProc));          // Start ThreadProc.  On a uniprocessor, the thread does not get          // any processor time until the main thread yields.  Uncomment          // the Thread.Sleep that follows t.Start() to see the difference.          t.Start();          //Thread.Sleep(0);           for (int i = 0; i <  4; i++) {              Console.WriteLine("Main thread: Do some work.");              Thread.Sleep(0);          }           Console.WriteLine("Main thread: Call Join(), to wait until ThreadProc ends.");          t.Join();          Console.WriteLine("Main thread: ThreadProc.Join has returned.  Press Enter to end program.");          Console.ReadLine();      }  }

此代碼產生的輸出類似如下內容:

Main thread: Start a second thread.  Main thread: Do some work.  ThreadProc: 0  Main thread: Do some work.  ThreadProc: 1  Main thread: Do some work.  ThreadProc: 2  Main thread: Do some work.  ThreadProc: 3  Main thread: Call Join(), to wait until ThreadProc ends.  ThreadProc: 4  ThreadProc: 5  ThreadProc: 6  ThreadProc: 7  ThreadProc: 8  ThreadProc: 9  Main thread: ThreadProc.Join has returned.  Press Enter to end program.

到此,關于“C# .NET多線程應用舉例分析”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

大埔区| 邯郸市| 石城县| 新巴尔虎左旗| 修武县| 彭山县| 衡阳市| 北宁市| 邮箱| 华坪县| 高唐县| 汽车| 余干县| 昌都县| 金湖县| 平邑县| 昭苏县| 清水河县| 敦煌市| 郸城县| 南华县| 河东区| 克拉玛依市| 石台县| 阿拉善左旗| 哈尔滨市| 仙居县| 朝阳县| 互助| 甘泉县| 封开县| 分宜县| 武邑县| 邻水| 双鸭山市| 清徐县| 金乡县| 新郑市| 敦煌市| 房山区| 祁门县|