关于Task的线程窃取

示例代码:

 1         static void Main(string[] args)
 2         {
 3             ThreadPool.SetMaxThreads(4, 1000);
 4             object locker = new object();
 5             const int TaskCount = 10;
 6 
 7             Task main = Task.Run(() =>
 8             {
 9                 var mainTid = Thread.CurrentThread.ManagedThreadId;
10                 Console.WriteLine("Main TID:{0}", mainTid);
11                 Thread.Sleep(1000);
12 
13                 Task[] tasks = new Task[TaskCount];
14                 for (int i = 0; i < TaskCount; i++)
15                 {
16                     tasks[i] = Task.Run(() =>
17                     {
18                         var tid = Thread.CurrentThread.ManagedThreadId;
19                         lock (locker)
20                         {
21                             if (mainTid == tid)
22                                 Console.ForegroundColor = ConsoleColor.Red;
23                             Console.WriteLine(tid);
24                             if (mainTid == tid)
25                                 Console.ForegroundColor = ConsoleColor.Gray;
26                         }
27                         Thread.Sleep(1000);
28                     });
29                 }
30                 Task.WaitAll(tasks);
31             });
32             main.Wait();
33         }

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值