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

推荐订阅源

云风的 BLOG
云风的 BLOG
Security Archives - TechRepublic
Security Archives - TechRepublic
V
Vulnerabilities – Threatpost
C
CXSECURITY Database RSS Feed - CXSecurity.com
P
Proofpoint News Feed
G
GRAHAM CLULEY
P
Privacy International News Feed
The Hacker News
The Hacker News
Forbes - Security
Forbes - Security
U
Unit 42
N
News and Events Feed by Topic
D
Darknet – Hacking Tools, Hacker News & Cyber Security
C
Cyber Attacks, Cyber Crime and Cyber Security
C
Cisco Blogs
A
About on SuperTechFans
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
D
Docker
I
Intezer
Spread Privacy
Spread Privacy
The Last Watchdog
The Last Watchdog
V2EX - 技术
V2EX - 技术
S
Security @ Cisco Blogs
F
Full Disclosure
S
Secure Thoughts
M
MIT News - Artificial intelligence
Microsoft Security Blog
Microsoft Security Blog
G
Google Developers Blog
aimingoo的专栏
aimingoo的专栏
W
WeLiveSecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Project Zero
Project Zero
Recorded Future
Recorded Future
Cyberwarzone
Cyberwarzone
S
Security Affairs
AWS News Blog
AWS News Blog
H
Help Net Security
The GitHub Blog
The GitHub Blog
Hacker News: Ask HN
Hacker News: Ask HN
Vercel News
Vercel News
P
Proofpoint News Feed
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
The Register - Security
The Register - Security
S
Schneier on Security
F
Fortinet All Blogs
C
CERT Recently Published Vulnerability Notes
L
LINUX DO - 最新话题
T
Tor Project blog
T
The Exploit Database - CXSecurity.com
MongoDB | Blog
MongoDB | Blog
Webroot Blog
Webroot 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("我起床了·!·!");
  }
 }
}
简单地说就是定义要通过事件调用的函数的代理,然后再将此代理注册到其他类中的事件上,在合适的时间调用。