• 技术文章 >后端开发 >C#.Net教程

    Task用法之启动方法实例

    零下一度零下一度2017-06-23 16:15:35原创1863

    第一、基本使用

    Thread,ThreadPool,Task的区别
    Task是.NET4.0加入的,跟线程池ThreadPool的功能类似,用Task开启新任务时,会从线程池中调用线程,而Thread每次实例化都会创建一个新的线程。
    如果是长时间的操作,请使用Task(Acton,TaskCreationOptions)构造函数中的
    TaskCreationOptions.LongRunning,暗示任务调度器,将这个线程放在非线程池上执行

    第二、四种启动方法

    1)通过start启动,new 一个Task,其中参数是一个Action
     class Program
        {
            static void Main(string[] args)
            {
                Task t = new Task(DoA);
                t.Start();
                Console.ReadKey();
            }
            static void DoA()
            {
                for (int i = 0; i < 100; i++)
                {
                    Console.WriteLine("i={0}\n", i);
                }
            }
        }

      

    2)通过Run,直接运行,接受参数一个Action,返回对象是一个Task

     static void Main(string[] args)
            {
                Task.Run(() =>
                {
                    for (int i = 0; i < 50; i++)
                    {
                        Console.WriteLine("i={0}",i);
                    }
                });
                Console.ReadKey();
            }

    3)带返回参数的线程

       Task<int> task = Task.Run<int>(() =>
                {
                    int sum = 0;
                    for (int i = 0; i < 50; i++)
                    {
                        sum += 1;
                    }
                    return sum;
                });
                int result = task.Result;
                Console.WriteLine("运算结果是:{0}",result);//输出50
                Console.ReadKey();

    4)通过Task.Factory

      Task t = Task.Factory.StartNew(() =>
                  {
                      for (int i = 0; i < 10; i++)
                      {
                          Console.WriteLine("i={0}", i);
                      }
                  });

      

    以上就是Task用法之启动方法实例的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:Task 方法 用法 启动
    上一篇:Task用法之任务等待wait实例 下一篇:编写一个webapi框架的开端
    千万级数据并发解决方案

    相关文章推荐

    • SUNWEN教程之----C#进阶(九)• .net编程时在线程里使用Form上的控件的问题• C#基础知识整理:基础知识(11) 值类型,引用类型• C# 动态加载Dll• .NET异步编程总结----四种实现模式代码总结
    1/1

    PHP中文网