zoukankan      html  css  js  c++  java
  • Task用法(1)-启动方法

    第一、基本使用

    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}
    ", 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);
                      }
                  });
    

      

     
  • 相关阅读:
    sql server数据库中char,varchar,nvarchar字段的区别
    在Notepad++中为Python配置编译环境
    react-navigation笔记
    React Native之语法规范
    Node.js学习笔记
    Java与C#对照笔记
    iOS常用配置注意事项
    React Native之RNRF框架源码解析
    React Native之Redux相关
    keytool常用方法
  • 原文地址:https://www.cnblogs.com/clc2008/p/6978762.html
Copyright © 2011-2022 走看看