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

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

淺析.Net下的多線程編程

淺析.Net下的多線程編程

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

多線程是許多操作系統所具有的特性,它能大大提高程序的運行效率,所以多線程編程技術為編程者廣泛關注。目前微軟的.Net戰略正進一步推進,各種相關的技術正為廣大編程者所接受,同樣在.Net中多線程編程技術具有相當重要的地位。本文我就向大家介紹在.Net下進行多線程編程的基本方法和步驟。 

  開始新線程 
   
  在.Net下創建一個新線程是非常容易的,你可以通過以下的語句來開始一個新的線程: 
     
  Thread thread = new Thread (new ThreadStart (ThreadFunc));  
  thread.Start (); 
      
  第一條語句創建一個新的Thread對象,并指明了一個該線程的方法。當新的線程開始時,該方法也就被調用執行了。該線程對象通過一個System..Threading.ThreadStart類的一個實例以類型安全的方法來調用它要調用的線程方法。 
      
  第二條語句正式開始該新線程,一旦方法Start()被調用,該線程就保持在一個"alive"的狀態下了,你可以通過讀取它的IsAlive屬性來判斷它是否處于"alive"狀態。下面的語句顯示了如果一個線程處于"alive"狀態下就將該線程掛起的方法: 
      
  if (thread.IsAlive) {    
  thread.Suspend ();   
  } 

  不過請注意,線程對象的Start()方法只是啟動了該線程,而并不保證其線程方法ThreadFunc()能立即得到執行。它只是保證該線程對象能被分配到CPU時間,而實際的執行還要由操作系統根據處理器時間來決定。 
   
  一個線程的方法不包含任何參數,同時也不返回任何值。它的命名規則和一般函數的命名規則相同。它既可以是靜態的(static)也可以是非靜態的(nonstatic)。當它執行完畢后,相應的線程也就結束了,其線程對象的IsAlive屬性也就被置為false了。下面是一個線程方法的實例: 

  public static void ThreadFunc() 
   
  { 
   
  for (int i = 0; i <10; i++) { 
   
  Console.WriteLine("ThreadFunc {0}", i); 
   
  } 
   
  } 
   
  前臺線程和后臺線程 

  .Net的公用語言運行時(Common Language Runtime,CLR)能區分兩種不同類型的線程:前臺線程和后臺線程。這兩者的區別就是:應用程序必須運行完所有的前臺線程才可以退出;而對于后臺線程,應用程序則可以不考慮其是否已經運行完畢而直接退出,所有的后臺線程在應用程序退出時都會自動結束。 

  一個線程是前臺線程還是后臺線程可由它的IsBackground屬性來決定。這個屬性是可讀又可寫的。它的默認值為false,即意味著一個線程默認為前臺線程。我們可以將它的IsBackground屬性設置為true,從而使之成為一個后臺線程。 

  下面的例子是一個控制臺程序,程序一開始便啟動了10個線程,每個線程運行5秒鐘時間。由于線程的IsBackground屬性默認為false,即它們都是前臺線程,所以盡管程序的主線程很快就運行結束了,但程序要到所有已啟動的線程都運行完畢才會結束。示例代碼如下: 

  using System; 
   
  using System.Threading; 
   
  class MyApp 
   
  { 
   
  public static void Main () 
   
  { 
   
  for (int i=0; i<10; i++) { 
   
  Thread thread = new Thread (new ThreadStart (ThreadFunc)); 
   
  thread.Start (); 
   
  } 
   
  } 
   
  private static void ThreadFunc () 
   
  { 
   
  DateTime start = DateTime.Now; 
   
  while ((DateTime.Now - start).Seconds <5) 
   
  ; 
   
  } 
   
  } 
   

[1] [2]  下一頁

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

本類教程下載

系統下載排行

網站地圖xml | 網站地圖html
主站蜘蛛池模板: 太湖县| 陵川县| 临安市| 桐乡市| 汉川市| 宜兰市| 当雄县| 盐池县| 澄城县| 宜昌市| 丰都县| 兰考县| 阜南县| 丰台区| 庐江县| 麻栗坡县| 老河口市| 江阴市| 深圳市| 乌海市| 乐陵市| 福建省| 漳州市| 上饶市| 华容县| 寿宁县| 姜堰市| 高密市| 宜春市| 河南省| 海安县| 万全县| 壶关县| 榕江县| 丰都县| 延寿县| 和平区| 洪江市| 诏安县| 大邑县| 抚远县|