zoukankan      html  css  js  c++  java
  • 关于Task类处理多线程简单示例

    1.定义一个线程
    var task1 = Task.Factory.StartNew(() => DoSomeWork());
    方法如下:
      View Code
            private static object DoSomeWork()
            {
                Console.WriteLine("nihao ");
                System.Threading.Thread.Sleep(3000);
                Console.Write("nihao ");
                return "xiexie";
            }

    2.多线程执行后,执行另一个方法
      var task1 = Task.Factory.StartNew(() => DoSomeWork()).ContinueWith(
                     task => { Console.WriteLine(task.Result.ToString()); }).ContinueWith(
                     task => { Console.WriteLine(task.Result.ToString()); });
    3.等待所有线程结束
    var task1 = Task.Factory.StartNew(() => DoSomeWork());
    var task2 = Task.Factory.StartNew(() => DoSomeWork());
    var task3 = Task.Factory.StartNew(() => DoSomeWork());
    Task.WaitAll(task1, task2, task3);
    4.等待其中一个线程结束
    var task1 = Task.Factory.StartNew(() => DoSomeWork());
    var task2 = Task.Factory.StartNew(() => DoSomeWork());
    var task3 = Task.Factory.StartNew(() => DoSomeWork());
    Task.WaitAny(task1, task2, task3);
    5.等待所有线程结束执行的方法
    var task1 = Task.Factory.StartNew(() =>
    {
        Thread.Sleep(3000);
        return "dummy value 1";
    });
    var task2 = Task.Factory.StartNew(() =>
    {
        Thread.Sleep(3000);
        return "dummy value 2";
    });
    var task3 = Task.Factory.StartNew(() =>
    {
        Thread.Sleep(3000);
        return "dummy value 3";
    });
    Task.Factory.ContinueWhenAll(new[] { task1, task2, task3 }, tasks =>
    {
        foreach (Task<string> task in tasks)
        {
            Console.WriteLine(task.Result);
        }
    });

  • 相关阅读:
    最短路之浇水
    agc031_d A Sequence of Permutations
    loj 3236 [POI2019 R1] Układ scalony
    CodeForces 1237H Balanced Reversals
    CodeForces 1320F Blocks and Sensors
    CodeForces 1340D Nastya and Time Machine
    agc037_f Counting of Subarrays
    nikkei2019_2_qual_e Non-triangular Triplets
    CodeForces 603E Pastoral Oddities
    Vue router / ElementUI,Ant Design Vue 重复点击导航路由报错解决方法
  • 原文地址:https://www.cnblogs.com/sjqq/p/8370848.html
Copyright © 2011-2022 走看看