• 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;
             }
  • 相关阅读:
    SQL GROUPING 运算符
    SQL 中各种各样的函数
    SQL 窗口函数简介
    [OpenWrt] 简单的策略路由
    简略讲解OpenWrt的路由配置(单播路由/静态路由、策略路由、IGMP组播路由)
    WPF中XAML中使用String.Format格式化字符串示例
    链接服务器使用OPENQUERY性能提升
    VSCode中不能使用cnpm的解决方案
    SQL执行时间计算常用的两种方法
    C# 实现简体中文和繁体中文的转换
  • 原文地址:https://www.cnblogs.com/LiMin/p/3046365.html
Copyright © 2020-2023  润新知