回调处理

Posted WangWeixin

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了回调处理相关的知识,希望对你有一定的参考价值。

1、创建控制台程序

2、定义业务类和回调时传递的参数类型,如下:

class Work
    {
        public delegate void ValueChangedEventHandler(object sender, ValueChangedEventArgs e);
        public ValueChangedEventHandler ValueChanged;

        public void DoWork()
        {
            if (ValueChanged!=null)
            {
                ValueChanged(this, new ValueChangedEventArgs(DateTime.Now.Second));
            }
        }
    }

    public class ValueChangedEventArgs : EventArgs
    {
        public ValueChangedEventArgs(int value)
        {
            this.Value = value;
        }

        public int Value;
    }

3、在Main中使用业务类,并定义回调处理逻辑,如下:

 class Program
    {
        static void Main(string[] args)
        {
            Work work = new Work();

            //方式一
            work.ValueChanged += (o, e) =>{
                Console.WriteLine("方式一:" + Convert.ToString(e.Value));
            };

            //方式二
            work.ValueChanged += ChangedHandler;


            work.DoWork();
            System.Threading.Thread.Sleep(3 * 1000);
            work.DoWork();

            Console.Read();

        }

        private static void ChangedHandler(object sender, ValueChangedEventArgs e)
        {
            Console.WriteLine("方式二:" + Convert.ToString(e.Value));
        }
    }

4、运行,结果如下:

方式一:45
方式二:45
方式一:48
方式二:48

 

以上是关于回调处理的主要内容,如果未能解决你的问题,请参考以下文章

如何优雅的处理Nodejs中的异步回调

使用异步回调处理事件

javascript 处理回调中的回调错误

处理回调函数[重复]

SIM卡 --- 联系人查询过程回调处理

回调解决未处理的承诺,为啥?