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

  • 相关阅读:
    Java实现 LeetCode 30 串联所有单词的子串
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 29 两数相除
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 28 实现strStr()
    Java实现 LeetCode 27 移除元素
    Java实现 LeetCode 27 移除元素
    字符编码终极笔记:ASCII、Unicode、UTF-8、UTF-16、UCS、BOM、Endian
  • 原文地址:https://www.cnblogs.com/sjqq/p/8370848.html
Copyright © 2011-2022 走看看