zoukankan      html  css  js  c++  java
  • C#的同步和异步调用方法

    同步和异步大家都明白什么意思,在这里不多介绍了。

    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);
            }
        }
    }
    

      

  • 相关阅读:
    char 转string
    博客,记忆的图谱。
    history
    openstack Icehouse发布
    数据库常用命令
    nagios
    screen
    openstack 流量控制
    sublime 3
    磁盘类型
  • 原文地址:https://www.cnblogs.com/kinger906/p/3428486.html
Copyright © 2011-2022 走看看