当前位置: 首页>>代码示例>>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;未经允许,请勿转载。