• 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:
    // 等待完成的任务。
    //

  • 相关阅读:
    HDU-ACM“菜鸟先飞”冬训系列赛——第9场
    HDU3092:Least common multiple(素数筛选+完全背包)
    HDU1452:Happy 2004(积性函数)(因子和)
    HDU-ACM“菜鸟先飞”冬训系列赛——第8场(1004)
    Codeforces Round #395 (Div. 2)
    一些算法技巧整理(添加中)
    poj 1852 Ants
    hdu 1587 Flowers
    hdu 1563 Find your present!
    hdu 1570 AC
  • 原文地址:https://www.cnblogs.com/bruce1992/p/14220388.html
Copyright © 2020-2023  润新知