zoukankan      html  css  js  c++  java
  • .net 任务(Task)

    1. Task (任务):

       很容易调用 ThreadPool.QueueUserWorkItem 实现异步操作,但是这个技术有许多

       .net 引入Task类型来使用任务。

       如下几种方式都是实现异步的方法:

      public static void Method()
            {
                ThreadPool.QueueUserWorkItem((o) => Console.WriteLine(""));
                //通过Start()来调度任务
                new Task(() => Console.WriteLine("")).Start();
                //通过Run方法 来调度任务
                Task.Run(() => Console.WriteLine(""));
                    Task.Factory.StartNew(() => Console.WriteLine("")); }

      a. 为了创建一个Task,需要调用构造器并传递一个Action 或 Action<Object> 委托。这个委托就是你想执行的代码操作。

      b. 如果调用Run 可以传递一个Action 或 Fun<Tresult> 委托。 两种区别在于 Aciton 无返回值, Fun 有返回值

     2. 等待 任务完成并获取结果:

     public static void Method2()
            {
                //创建一个Task
                Task<int> t = new Task<int>(n => Sum((int)n), 10);
    
                //启动任务
                t.Start();
    
                //等待任务完成
                t.Wait();
                //获取结果
                Console.WriteLine("Sum is:{0}", t.Result);
            }
    
            private static int Sum(int n)
            {
                int sum = 0;
                for (; n > 0; n--)
                {
                    checked { sum += n; }
                }
    
                return sum;
            }

    3. 取消任务:

     CancellationTokenSource

    Parallel 静态 For,ForEach和Invoke.

     Task.Run(async () => await Result);

  • 相关阅读:
    C语言编程练习51:今年暑假不AC
    C语言编程练习50:素数环
    C语言编程练习49:N皇后问题
    C语言编程练习48:士兵队列训练问题
    C语言编程练习47:看病要排队
    C语言编程练习46:度度熊学队列
    C语言编程练习44:产生冠军
    文言句式
    计算机网络
    计算机组成原理
  • 原文地址:https://www.cnblogs.com/dragon-L/p/5399254.html
Copyright © 2011-2022 走看看