zoukankan      html  css  js  c++  java
  • C# 中的异步问题 Task

     public class SharedData

        {

            public int Value { get; set; }

        }

        public class Test

        {

            async Task ModifyValueAsync(SharedData data)

            {

                Console.WriteLine("pre value Current thread id is {0}",        Thread.CurrentThread.ManagedThreadId);

                await Task.Delay(TimeSpan.FromSeconds(1));

                data.Value = data.Value + 1;

                Console.WriteLine("after value Current thread id is {0}", Thread.CurrentThread.ManagedThreadId);

            }

            // 警告:可能需要同步,见下面的讨论。

           public async Task<int> ModifyValueConcurrentlyAsync()

            {

                var data = new SharedData();

                // 启动三个并发的修改过程。

                var task1 = ModifyValueAsync(data);

                var task2 = ModifyValueAsync(data);

                var task3 = ModifyValueAsync(data);

                await Task.WhenAll(task1, task2, task3);

                return data.Value;

            }

        }

    --------------------------------------------------------------------

    main 执行代码

    static void Main(string[] args)
    {

      test();

      Console.ReadLine();
    }
    static async void test()
    {
      // SharedData sd = new SharedData();
      // sd.Value = 10;
      Test t = new Test();
      int m = await t.ModifyValueConcurrentlyAsync();
      Console.WriteLine(m);
    }

     Task.Delay 

    // 摘要:
    // 创建一个在指定的时间间隔后完成的任务。
    //

     public static Task WhenAll(params Task[] tasks);

    // 摘要:
    // 创建一个任务,该任务将在数组中的所有 System.Threading.Tasks.Task 对象都完成时完成。
    //
    // 参数:
    // tasks:
    // 等待完成的任务。
    //

  • 相关阅读:
    表达式与运算符
    Python3 从零单排22_异常处理
    Python3 从零单排21_元类
    Python3 从零单排20_方法(绑定&内置)&反射
    Python3 从零单排19_组合&多态
    Python3 从零单排18_封装
    Python3 从零单排17_类的继承
    Python3 从零单排16_面向对象基础
    Python3 从零单排15_urllib和requests模块
    Python3 从零单排14_flask模块&mysql操作封装
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14220388.html
Copyright © 2011-2022 走看看