惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

N
News and Events Feed by Topic
爱范儿
爱范儿
Apple Machine Learning Research
Apple Machine Learning Research
博客园 - 叶小钗
Last Week in AI
Last Week in AI
博客园 - 三生石上(FineUI控件)
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
月光博客
月光博客
大猫的无限游戏
大猫的无限游戏
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
博客园 - Franky
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
博客园 - 司徒正美
罗磊的独立博客
博客园 - 聂微东
T
Troy Hunt's Blog
美团技术团队
IT之家
IT之家
A
Arctic Wolf
腾讯CDC
雷峰网
雷峰网
SecWiki News
SecWiki News
博客园_首页
L
LINUX DO - 最新话题
Cloudbric
Cloudbric
量子位
N
News and Events Feed by Topic
小众软件
小众软件
C
CXSECURITY Database RSS Feed - CXSecurity.com
Cyberwarzone
Cyberwarzone
J
Java Code Geeks
V
V2EX
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Latest news
Latest news
Webroot Blog
Webroot Blog
F
Fortinet All Blogs
P
Privacy International News Feed
NISL@THU
NISL@THU
Google Online Security Blog
Google Online Security Blog
WordPress大学
WordPress大学
PCI Perspectives
PCI Perspectives
GbyAI
GbyAI
宝玉的分享
宝玉的分享
阮一峰的网络日志
阮一峰的网络日志
S
Secure Thoughts
Simon Willison's Weblog
Simon Willison's Weblog
P
Palo Alto Networks Blog
V
Visual Studio Blog

博客园 - 拼命郎

Gated Check-in function in TeamBuild 2010 关于asp.net2.0里的Multiview和View控件的显示与隐藏实现的问题 急死我了!!!vs 2005 单元测试 总是报错 读书笔记- programing .net components(o'Reilly) 由一个关于数据库操作类的写法而想到的。。。。 在sqlserver建表时尽量不要用特殊的字符,如[、]、回车等 关于嵌套事务的一种处理方法 关于.net 控件的html 属性的几点技巧 一个关于内容换行的问题 jbuilder 中不能调试的一种情况 几点关于java的代码常用规范 最近项目中一些关于代码编写管理的一些思考 几点asp.net的小收获 IsDbNull 方法的用法 两个概念:结构化和层次化的含义 一个char类型的字符赋给一个string对象时不会发生装箱操作 浅析.Net下的AppDomain编程 (转载) 属性(Attributs)笔记 操作符重载笔记
用事件和代理实现的一个闹钟实例
拼命郎 · 2006-01-12 · via 博客园 - 拼命郎

网速慢又不能插入代码,只好粘贴了
using System;

namespace Clock
{
public delegate void GetupNow();
 class home
 {
  /// <summary>
  /// 闹钟实现
  /// </summary>
  
  [STAThread]
  static void Main(string[] args)
  {
   Clock clock=new Clock();
   Man man=new Man();

   GetupNow getupNow;

   getupNow=new GetupNow(man.Getup);
   clock.getup+=new GetupNow(man.Getup);

   clock.Settime();
   clock.Ifring();
   Console.ReadLine(); 
   
  }
 }
 class Clock
 {
  public System.DateTime time;
  public event GetupNow getup;

  public void Settime()
  {
   int x=0;
   Console.WriteLine(System.DateTime.Now.ToShortDateString()+"请输入你要在多少毫秒后被叫醒");
   time=new DateTime();
   time=System.DateTime.Now;
   x=int.Parse(Console.ReadLine().Trim());
   time=time.AddSeconds(x);   
  }
  public void Ifring()
  {
    do
    {
     System.Threading.Thread.Sleep(1000); //休眠1000毫秒
     Console.WriteLine(time.Second-System.DateTime.Now.Second);//输出当前时间与响铃时间的差值
    }
    while
     (time.Second>System.DateTime.Now.Second);
    Ring();
    getup();
  }
  private void Ring()
  {
   Console.WriteLine("时间到");
  }

 }
 class Man
 {
    public void Getup()
  {
   Console.WriteLine("我起床了·!·!");
  }
 }
}
简单地说就是定义要通过事件调用的函数的代理,然后再将此代理注册到其他类中的事件上,在合适的时间调用。