zoukankan      html  css  js  c++  java
  • Async与 Await 无觉

    static void Main(string[] args)
             {
                 // 同步方式
                 Console.WriteLine("同步方式测试开始!");
                 SyncMethod(0);
                 Console.WriteLine("同步方式结束!");
                 Console.ReadKey();
             }
     
             // 同步操作
             private static void SyncMethod(int input)
             {
                 Console.WriteLine("进入同步操作!");
                 var result = SyancWork(input);
                 Console.WriteLine("最终结果{0}", result);
                 Console.WriteLine("退出同步操作!");
             }
     
             // 模拟耗时操作(同步方法)
             private static int SyancWork(int val)
             {
                 for (int i = 0; i < 5; ++i)
                 {
                     Console.WriteLine("耗时操作{0}", i);
                     Thread.Sleep(100);
                     val++;
                 }
                 return val;
             }
    static void Main(string[] args)
            {
                // 异步方式
                Console.WriteLine("\n异步方式测试开始!");
                AsyncMethod(0);
                Console.WriteLine("异步方式结束!");
                Console.ReadKey(); 
            }  
    
            // 异步操作
            private static async void AsyncMethod(int input)
            {
                Console.WriteLine("进入异步操作!");
                var result = await AsyncWork(input);
                Console.WriteLine("最终结果{0}", result);
                Console.WriteLine("退出异步操作!");
            }
    
            // 模拟耗时操作(异步方法)
            private static async Task<int> AsyncWork(int val)
            {
                for (int i = 0; i < 5; ++i)
                {
                    Console.WriteLine("耗时操作{0}", i);
                    await Task.Delay(100);
                    val++;
                }
                return val;
            }
    // 异步操作
             private static async void AsyncMethod(int input)
             {
                 Console.WriteLine("进入异步操作!");
                 var result = await Task.Factory.StartNew((Func<object, int>)SyncWork2, input);
                 Console.WriteLine("最终结果{0}", result);
                 Console.WriteLine("退出异步操作!");
             }
     
             // 模拟耗时操作(同步方法)
             private static int SyncWork2(object input)
             {
                 int val = (int)input;
                 for (int i = 0; i < 5; ++i)
                 {
                     Console.WriteLine("耗时操作{0}", i);
                     Thread.Sleep(100);
                     val++;
                 }
                 return val;
             }
  • 相关阅读:
    Spring中的注解@Service @Component @Controller @Repository区别
    hibhibernate中hql中的语句where语句查询List出现空
    转-sql中的case when的用法
    转-JS子窗口创建父窗口操作父窗口
    JS子父窗口互相取值赋值详解介绍
    转-JS之Window对象
    转-JS中document对象详解
    java设计优化--装饰者模式
    Java继承中属性、方法和对象的关系
    利用Ant脚本生成war包的详细步骤
  • 原文地址:https://www.cnblogs.com/LiMin/p/3046365.html
Copyright © 2011-2022 走看看