當前位置: 首頁>>代碼示例>>C#>>正文


C# Thread.CurrentThread屬性代碼示例

本文整理匯總了C#中System.Threading.Thread.CurrentThread屬性的典型用法代碼示例。如果您正苦於以下問題:C# Thread.CurrentThread屬性的具體用法?C# Thread.CurrentThread怎麽用?C# Thread.CurrentThread使用的例子?那麽, 這裏精選的屬性代碼示例或許可以為您提供幫助。您也可以進一步了解該屬性所在System.Threading.Thread的用法示例。


在下文中一共展示了Thread.CurrentThread屬性的2個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: Object

//引入命名空間
using System;
using System.Collections.Generic;
using System.Threading;
using System.Threading.Tasks;

public class Example
{
   private static Object lockObj = new Object();
   private static Object rndLock = new Object();

   public static void Main()
   {
      Random rnd = new Random();
      var tasks = new List<Task<Double>>();
      ShowThreadInformation("Application");

      Task<Double> t = Task.Run( () => { ShowThreadInformation("Main Task(Task #" + Task.CurrentId.ToString() + ")");
                                         for (int ctr = 1; ctr <= 20; ctr++)
                                           tasks.Add(Task.Factory.StartNew(
                                              () => { ShowThreadInformation("Task #" + Task.CurrentId.ToString());
                                                      long s = 0;
                                                      for (int n = 0; n <= 999999; n++) {
                                                         lock (rndLock) {
                                                            s += rnd.Next(1, 1000001);
                                                         }
                                                      }
                                                      return s/1000000.0;
                                                    } ));

                                        Task.WaitAll(tasks.ToArray());
                                        Double grandTotal = 0;
                                        Console.WriteLine("Means of each task: ");
                                        foreach (var child in tasks) {
                                           Console.WriteLine("   {0}", child.Result);
                                           grandTotal += child.Result;
                                        }
                                        Console.WriteLine();
                                        return grandTotal / 20;
                                   } );
      Console.WriteLine("Mean of Means: {0}", t.Result);
   }

  private static void ShowThreadInformation(String taskName)
  {
      String msg = null;
      Thread thread = Thread.CurrentThread;
      lock(lockObj) {
         msg = String.Format("{0} thread information\n", taskName) +
               String.Format("   Background: {0}\n", thread.IsBackground) +
               String.Format("   Thread Pool: {0}\n", thread.IsThreadPoolThread) +
               String.Format("   Thread ID: {0}\n", thread.ManagedThreadId);
      }
      Console.WriteLine(msg);
   }
}
開發者ID:.NET開發者,項目名稱:System.Threading,代碼行數:56,代碼來源:Thread.CurrentThread

輸出:

Application thread information
Background: False
Thread Pool: False
Thread ID: 1

Main Task(Task #1) thread information
Background: True
Thread Pool: True
Thread ID: 3

Task #2 thread information
Background: True
Thread Pool: True
Thread ID: 4

Task #4 thread information
Background: True
Thread Pool: True
Thread ID: 10

Task #3 thread information
Background: True
Thread Pool: True
Thread ID: 9

Task #5 thread information
Background: True
Thread Pool: True
Thread ID: 3

Task #7 thread information
Background: True
Thread Pool: True
Thread ID: 5

Task #6 thread information
Background: True
Thread Pool: True
Thread ID: 7

Task #8 thread information
Background: True
Thread Pool: True
Thread ID: 6

Task #9 thread information
Background: True
Thread Pool: True
Thread ID: 8

Task #10 thread information
Background: True
Thread Pool: True
Thread ID: 9

Task #11 thread information
Background: True
Thread Pool: True
Thread ID: 10

Task #12 thread information
Background: True
Thread Pool: True
Thread ID: 6

Task #13 thread information
Background: True
Thread Pool: True
Thread ID: 4

Task #14 thread information
Background: True
Thread Pool: True
Thread ID: 3

Task #15 thread information
Background: True
Thread Pool: True
Thread ID: 7

Task #16 thread information
Background: True
Thread Pool: True
Thread ID: 5

Task #17 thread information
Background: True
Thread Pool: True
Thread ID: 8

Task #18 thread information
Background: True
Thread Pool: True
Thread ID: 9

Task #19 thread information
Background: True
Thread Pool: True
Thread ID: 10

Task #20 thread information
Background: True
Thread Pool: True
Thread ID: 4

Task #21 thread information
Background: True
Thread Pool: True
Thread ID: 7

Means of each task:
500038.740584
499810.422703
500217.558077
499868.534688
499295.505866
499893.475772
499601.454469
499828.532502
499606.183978
499700.276056
500415.894952
500005.874751
500042.237016
500092.764753
499998.798267
499623.054718
500018.784823
500286.865993
500052.68285
499764.363303

Mean of Means: 499908.10030605

示例2: Main

//引入命名空間
using System;
using System.Globalization;
using System.Threading;

class MainClass
{
  public static void Main() 
  {
    Thread.CurrentThread.CurrentCulture=new CultureInfo("de-DE");


  }

}
開發者ID:C#程序員,項目名稱:System.Threading,代碼行數:15,代碼來源:Thread.CurrentThread


注:本文中的System.Threading.Thread.CurrentThread屬性示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。