苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 4508|回复: 4

[其他] 接口和事件的问题

[复制链接]
发表于 2013-5-3 15:48:15 | 显示全部楼层 |阅读模式
有如下场景
1.假设晚会七点开始,然后主持人上台报幕,台下观众保持安静,演员准备上台,
2.如果突然停电且时间过长,晚会终止,观众有序退场,演员下台卸妆,工作人员清理舞台,关闭电器设备。
用控制台实现。
刚接触,不是很明白,先谢谢站长了


1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2013-5-3 17:55:24 | 显示全部楼层
你这只是一个场景。没有说清楚都那些地方需要控制啊。其实就只是两个流程,一个是断电情况下怎么走,一个是正常情况下怎么走的问题,因为你上面写的只有两条线,所以我感觉只要一个IF就搞定了。

IF(有电)

假设晚会七点开始,然后主持人上台报幕,台下观众保持安静,演员准备上台,
}else
{
如果突然停电且时间过长,晚会终止,观众有序退场,演员下台卸妆,工作人员清理舞台,关闭电器设备。
}
 楼主| 发表于 2013-5-3 20:58:33 | 显示全部楼层
Ausing System;
using System.Collections.Generic;
using System.Text;



namespace Delegate
{
    // 热水器
    public class Heater
    {
        private int temperature;
        public delegate void BoilHandler(int param);            // 1 声明委托

        public event BoilHandler BoilEvent;                     // 2 声明事件


        public void BoilWater()                               // 烧水   3 定义引发一个事件的方法。
        {
            Console.WriteLine("开始烧水了!");
            for (int i = 95; i <= 100; i++)
            {
                temperature = i;
               
                System.Threading.Thread thr = System.Threading.Thread.CurrentThread;
                //阻塞当前线程2秒
                System.Threading.Thread.Sleep(2000);
                if (temperature > 95)
                {
                    if (BoilEvent != null)
                    {       //如果有对象注册
                        BoilEvent(temperature);       // 达到某条件  4 引发一个事件
                    }
                }
            }
        }
    }

    // 警报器
    public class Alarm
    {
        public void MakeAlert(int param)          // 5 定义事件处理程序。
        {
            Console.WriteLine("Alarm:嘀嘀嘀,水已经 {0} 度了:", param);
        }
    }

    // 显示器
    public class Display
    {
        public void ShowMsg(int param)        // 5 定义事件处理程序。
        {       //静态方法
            Console.WriteLine("Display:水快烧开了,当前温度:{0}度。", param);
        }
    }

    class Program
    {
        static void Main()
        {
            Heater heater = new Heater();
            Alarm alarm = new Alarm();

            heater.BoilEvent += alarm.MakeAlert;       // 6 订阅事件

            Display disp = new Display();

            heater.BoilEvent += disp.ShowMsg;             // 6 订阅事件

            heater.BoilWater();       //烧水,会自动调用注册过对象的方法
        }
    }
}
 楼主| 发表于 2013-5-3 21:00:38 | 显示全部楼层
这是一个例子,让根据这个例子来写,没头绪,首先得确定下时间,执行完第一个场景,应该是要选择是否断电吧,如果断电执行第二个场景(事件),否晚会继续
 楼主| 发表于 2013-5-3 21:01:38 | 显示全部楼层
站长苏飞 发表于 2013-5-3 17:55
你这只是一个场景。没有说清楚都那些地方需要控制啊。其实就只是两个流程,一个是断电情况下怎么走,一个是 ...

看下面的例子
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-26 02:55

© 2014-2021

快速回复 返回顶部 返回列表