zoukankan      html  css  js  c++  java
  • 启动新任务和子任务

     1         private static void StartNewTask()
     2         {
     3             //创建并启动一个Task
     4             Task<string> task = Task.Run(() => TaskTest("TaskTest1"));
     5 
     6             //继续另一个任务
     7             //ContinueWith返回一个新的Task引用
     8             Task cwt = task.ContinueWith(t => Console.WriteLine(t.Result));
     9             //继续另一个任务
    10             task.ContinueWith(t => Console.WriteLine("Complete"));
    11         }
    12 
    13         private static void StartChildTask()
    14         {
    15             //返回类型为string[]的Task
    16             Task<string[]> parent = new Task<string[]>(() =>
    17             {
    18                 //创建一个数组来存储结果
    19                 string[] result = new string[3];
    20 
    21                 //创建并启动3个子任务
    22                 //指定将任务附加到任务层次结构中的某个父级
    23                 new Task(() => result[0] = TaskTest("TaskTest0"), TaskCreationOptions.AttachedToParent).Start();
    24                 new Task(() => result[1] = TaskTest("TaskTest1"), TaskCreationOptions.AttachedToParent).Start();
    25                 new Task(() => result[2] = TaskTest("TaskTest2"), TaskCreationOptions.AttachedToParent).Start();
    26 
    27                 //返回对数组的引用,即使数组元素可能还没有初始化
    28                 return result;
    29             });
    30 
    31             //父任务及其子任务完成后,用一个延续任务显示结果
    32             var cwt = parent.ContinueWith((parentTask) => Array.ForEach(parentTask.Result, Console.WriteLine));
    33 
    34             //启动父任务,以便于启动其子任务
    35             parent.Start();
    36         }
    37 
    38         private static string TaskTest(string str)
    39         {
    40             Console.WriteLine("TaskTest_" + str);
    41             return str;
    42         }
  • 相关阅读:
    在Linux中安装Oracle(较详细图解)
    SecureCRT
    MHA配置文件说明
    MySQL建表规范与常见问题 (go)
    Shell编程时常用的系统文件(转)
    Leetcode: Excel Sheet Column Title
    Leetcode: Find Peak Element
    Leetcode: Intersection of Two Linked Lists
    Leetcode: Majority Element
    Summary: Class Variable vs. Instance Variable && Class Method
  • 原文地址:https://www.cnblogs.com/xuejietong/p/8901844.html
Copyright © 2011-2022 走看看