C# Thread、delegate、Task三种异步进行对比

2021-04-22 17:36

阅读:369

标签:委托   tree   实例   对比   速度   lin   ret   wait   null   

1.Thread 【线程】

不断创建 Thread 会消耗很大的cup 导致 异步效率变慢

2.delegate【委托异步】

由于需要不断的实例化 委托类 将会消耗cup 和 内存

3.Task 【结合  async】

这种是三种中性能最好的  较低的cup和内存损耗

下面是例子:

#region 委托异步 和  asycn 异步进行对比
        ///


        /// 运行
        ///

        ///
        static void Run(int count)
        {

            // TestTreed(  count);
            TestAsycnTask(count);
         //   TestDelegate(count);

        }


        ///


        /// 损耗cup 而且创建速度慢
        ///

        ///
        static void TestTreed(int count)
        {
            for (int i = 0; i             {
                //  Console.WriteLine("开始计算");
                new Thread(a =>
                {
                    Console.WriteLine(i);
                }).Start();
            }
          

        }
        //***************Task 部分

        ///


        /// Task异步
        ///

        ///
        ///
        static async Task AsyncTask(int i)
        {

            // await Task.Delay(1500);
            Console.WriteLine(i);
            return i;
        }

        ///


        /// 测试 asycn 只会消耗小部分 cup
        ///

        ///
        static void TestAsycnTask(int count)
        {
            for (int i = 0; i             {
              //  Console.WriteLine("开始计算");
                 AsyncTask(i);//直接就异步了
            }
            
        }


        //********************************委托部分

        private delegate int _delegate(int i);
        ///


        /// 因为创建  委托  所以会消耗内存  和cup
        ///

        ///
        static void TestDelegate(int count)
        {
            for (int i = 0; i             {
                var d = new _delegate(Delegte);
                var r = d.BeginInvoke(i, null, null);

            }
        }

        ///


        /// 委托函数
        ///

        ///
        ///
        static int Delegte(int i)
        {
            Console.WriteLine(i);
            return i;
        }

     

#endregion  


C# Thread、delegate、Task三种异步进行对比

标签:委托   tree   实例   对比   速度   lin   ret   wait   null   

原文地址:http://www.cnblogs.com/change4now/p/8012331.html


评论


亲,登录后才可以留言!