本文整理汇总了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);
}
}
输出:
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");
}
}