庖丁解牛看委托和事件(续)

上一篇文章:庖丁解牛——深入解析委托和事件之后,以一题面试题来总结事件

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;

namespace CallChange
{
    public class Call
    {
        static void Main(string[] args)
        {
            MessageMonitoring mm = new MessageMonitoring();
            //添加监听事件的响应函数
            mm.OnValueChange += new MMEventHandle((s, e) =>
            {

                Console.WriteLine(e.Value);

            });
            mm.Run();

        }
    }
    //参数e
    public class MMEventArgs : EventArgs
    {
        public int Value { get; set; }
    }
    public delegate void MMEventHandle(object sender, MMEventArgs e);
    //信息监控的类,当Value改变的时候,出发事件OnValueChange
    public class MessageMonitoring
    {
        public event MMEventHandle OnValueChange;
        private int _value;


        public void Run()
        {
            Thread thread = new Thread(() =>
            {
                while (true)
                {
                    Thread.Sleep(1000);
                    ++Value;
                }

            });
            thread.Start();

        }


        //属性改变
        public int Value
        {
            get { return _value; }
            set
            {
                if (_value != value)
                {
                    _value = value;
                    if (OnValueChange != null)
                    {
                        OnValueChange(this, new MMEventArgs { Value = _value });
                    }
                }
            }
        }

    }
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏大内老A

WCF技术剖析之十八:消息契约(Message Contract)和基于消息契约的序列化

在本篇文章中,我们将讨论WCF四大契约(服务契约、数据契约、消息契约和错误契约)之一的消息契约(Message Contract)。服务契约关注于对服务操作的描...

2465
来自专栏Java帮帮-微信公众号-技术文章全总结

Spring scope 作用域

Spring scope 作用域 今天研究了一下scope的作用域。默认是单例模式,即scope="singleton"。 另外scope还有prototype...

3525
来自专栏菜鸟计划

angularjs 服务详解

一、服务 服务提供了一种能在应用的整改生命周期内保持数据的方法,它能够在控制器之间进行通信,并保持数据的一致性。 1.服务是一个单例对象,在每个应用中只会被实例...

3476
来自专栏java闲聊

设计模式之单例模式

会存在并发问题,因为调用newInstance()方法时没有加锁,导致会并发执行,如图:

941
来自专栏ShaoYL

内存管理总结-autoreleasePool

3206
来自专栏芋道源码1024

Java初中级面试题(2)

1897
来自专栏java一日一条

深入理解Java运行时数据区

在本专栏的前12篇博客中, 我们主要大致介绍了什么是JVM, 并且详细介绍了class文件的格式。 对于深入理解Java, 或者深入理解运行于JVM上的其他语...

331
来自专栏企鹅号快讯

百篇(3):使用注解和反射打造ORM框架

java使用注解和反射打造一个简单的ORM Table of Contents 原理 实现 1. 定义我们需要的注解 2. 反射工具类 3. 简单的 model...

2526
来自专栏java进阶架构师

03:SpringBoot整合SpringDataJPA实现数据库的访问(二)

首先回忆一下,前面我们创建studentRepo类继承JpaRepository<T,ID>接口,即可实现最基本的crud。如下:

672
来自专栏禁心尽力

总结hibernate框架的常用检索方式

1、hibernate框架的检索方式有以下几种: OID检索:根据唯一标识OID检索数据 对象导航检索:根据某个对象导航查询与该对象关联的对象数据 HQL检索:...

1966

扫描关注云+社区