zoukankan      html  css  js  c++  java
  • 线程的学习-1,控制线程数量,模仿的

    学会了控制线程数量,目前感觉使用c#5.0的新特性灵活性不如之前的线程使用,所以不是很喜欢用新特性,不过也可能是我还没熟悉,等以后熟悉清楚了,再评价好不好,今天先搞一搞控制线程数量

    public class TaskTest
        {
            public void Test()
            {
                List<Task> list = new List<Task>();
                
                TaskFactory taskFactory = new TaskFactory();
    
                for (int i = 0; i < 100; i++)
                {
                    list.Add(taskFactory.StartNew(this.ClacNum));
                    if(list.Count>8)
                    {
                        //重新赋值,把未完成的,没有异常的,没有取消的线程任务重新绑定到list
                        list = list.Where(x => !x.IsCompleted && !x.IsCanceled && !x.IsFaulted).ToList();
    
                        //等待其中一个线程任务的完成
                        Task.WaitAny(list.ToArray());
                    }
                }
            }        
            private void ClacNum()
            {
                long num = 0;
                for (int i = 0; i < 1000; i++)
                {
                    num += i;
                    Thread.Sleep(4);
                }
                Console.WriteLine("当前线程:{0},返回值为:{1}", Thread.CurrentThread.ManagedThreadId, num);
            }
        }

    线程资源可以重复使用,不会新开线程

  • 相关阅读:
    Nginx的访问控制
    远程登录
    Linux的网络命令
    laravel-collect
    laravel-model
    laravel-Macroable
    laravel-容器
    机器学习-Logisitic回归
    机器学习-多变量线性回归
    算法笔记-分支界限法
  • 原文地址:https://www.cnblogs.com/wjr408/p/6692919.html
Copyright © 2011-2022 走看看