C#同步和异步调用方法实例

时间:2022-09-11 21:20:50 


namespace ConsoleTest
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("********同步调用开始**********");
            int result = Add(1,2);
            Console.WriteLine("同步调用完毕,执行结果为:" + result);

            Console.WriteLine("********异步调用开始**********");
            SynAdd(1, 2, (r) => {
                Console.WriteLine("异步调用完毕,执行结果为:" + r);
            });
            Console.WriteLine("-------完毕!----------");
            Console.ReadLine();
        }

        /// <summary>
        /// 同步方法
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <returns></returns>
        static int Add(int a, int b)
        {
            Thread.Sleep(5000);
            return a + b;
        }

        /// <summary>
        /// 异步调用
        /// </summary>
        /// <param name="a"></param>
        /// <param name="b"></param>
        /// <param name="callback">委托对象</param>
        static void SynAdd(int a, int b, Action<int> callback)
        {
            Func<int> func = () =>
            {
                Thread.Sleep(5000);
                return a+b;
            };//声明异步方法实现方式
            func.BeginInvoke((ar) =>
            {
                var result = func.EndInvoke(ar);//调用完毕执行的结果
                callback.Invoke(result);//委托执行,回传结果值
            }, null);
        }
    }
}

标签:异步调用,同步调用,C#
0
投稿

猜你喜欢

  • 基于FeignException$InternalServerError的解决方案

    2023-04-25 15:50:45
  • spring boot 2.x html中引用css和js失效问题及解决方法

    2021-08-13 10:28:32
  • Springcloud微服务架构基础知识解析

    2023-01-26 14:37:10
  • java开发之内部类的用法

    2023-02-04 21:30:07
  • Flutter Widgets之标签类控件Chip详解

    2023-06-26 14:22:35
  • 详解Kotlin中的面向对象(一)

    2023-08-17 12:57:38
  • SpringMVC中@ModelAttribute与@RequestBody的区别及说明

    2023-11-24 12:09:51
  • 值得Java开发者关注的7款新工具

    2023-11-02 23:05:31
  • 解决Mybatis中foreach嵌套使用if标签对象取值的问题

    2023-11-23 06:02:02
  • Java中io流解析及代码实例

    2023-08-22 16:46:48
  • IntellJ IDEA神器使用技巧(小结)

    2023-08-08 22:01:44
  • 浅谈java的byte数组的不同写法

    2023-03-10 07:53:12
  • 使用controller传boolean形式值

    2023-11-28 23:05:33
  • Java日期与时间类原理解析

    2021-07-20 14:00:36
  • 浅谈springboot的三种启动方式

    2022-07-31 10:57:47
  • 深入理解Spring事务原理

    2022-01-18 04:16:39
  • SpringBoot常用数据库开发技术汇总介绍

    2023-11-11 09:39:22
  • idea如何配置javafxsdk详细教程

    2023-11-24 22:04:16
  • 基于java集合中的一些易混淆的知识点(详解)

    2023-08-29 03:06:26
  • Java数据结构超详细分析二叉搜索树

    2022-12-01 01:34:20
  • asp之家 软件编程 m.aspxhome.com