zoukankan      html  css  js  c++  java
  • c#事件实例三

    c#事件实例三

    监视test.txt 文件的状态滴呀!

     直接上代码;

    using System;
    using System.Threading;
    using System.IO;
    namespace EventLearn003
    {
        public delegate void FileWatchHanlder(Object sender,EventArgs e);
    
        //这个,相当于事件的发生了;
       public class FileWatch
        {
           private bool _bLastStatus = false;
           public event FileWatchHanlder FileWatching;
           public FileWatch()
           {
               //这个大概就是我们的基本的代码滴啦;
               //然后我们把他生成dll 然后 在别的项目中别引用滴呀;
           }
    
           protected virtual void OnFileChange(EventArgs e)
           {
               if (FileWatching != null)
               {
                   //需要触发事件的地方 调用delegate的方式写触发方法,一般为protected 类型的 虚方法;
                   FileWatching(this,e); 
                   //调用事件;
               }
           }
    
           public void MonitorFile()
           {
               bool bCurrentStatus;
               while (true)
               {
                   bCurrentStatus = File.Exists("test.txt");
    
                   if (bCurrentStatus != _bLastStatus)
                   {
                       _bLastStatus = bCurrentStatus;
                       OnFileChange(EventArgs.Empty);
                   }
                   Thread.Sleep(260);
               }
           }
    
        }
    }

    事件接受类:

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using EventLearn003;
    
    namespace EventLearn003
    {
        class Program
        {
            public static void en(Object sender, EventArgs e)
            {
                Console.WriteLine("状态呗改变了...");
            }
            static void Main(string[] args)
            {
    
                //事件的接受类滴呀;
                FileWatch help = new FileWatch();
                help.FileWatching += en;
    
                help.MonitorFile();
    
                //这个大概就是 我们事件滴使用了滴把;
                //把我们的观察着,设计 模式 看懂了,那么 就算是明白了一点点了滴呀;
    
    
            }
        }
    }

    好了,我们事件讲解就算是到一段落了滴呀;

  • 相关阅读:
    动态查询 母表和子表的 一种方法
    js的一些正则 整理 长期更新
    fmt 标签格式化 日期
    一些关于 checkbox的前台 jquery 操作 记录
    jQuery 追加元素的方法如append、prepend、before,after(转)
    (Oracle)DBMS_SYSTEM工具-01[20180510]
    MySQL->元数据[20180510]
    MySQL->复制表[20180509]
    MySQL->索引的维护[20180504]
    MySQL-ALTER TABLE命令学习[20180503]
  • 原文地址:https://www.cnblogs.com/mc67/p/5076163.html
Copyright © 2011-2022 走看看