C#-Pipeline风格的事件模型 [英] C# -Pipeline Style event model

查看:325
本文介绍了C#-Pipeline风格的事件模型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在ASP.NET Web应用程序,事件在particluar顺序触发:

In ASP.NET Web Apps , events are fired in particluar order :

为了简单起见,加载=>验证=>回传=>渲染

假设我想开发这种管道-styled事件

Suppose I want to develop such pipeline -styled event

例如:

事件1 [Audiance都在收集,伙计们{事件2和事件3请等待,直到i信号}]

Event 1 [ "Audiance are gathering" ,Guys{ Event 2 and Event 3 Please wait until i signal }]

$ b $后b事件1完成了它的任务

事件2 [{事件2,事件3Audiance云集!我的任务已经结束} ]

Event 2 [ { Event 2, Event 3 "Audiance gathered! My task is over } ]

事件2接管控制来执行它的任务

事件2 [Audiance都记录在事件3请等待i信号]

Event 2 [ " Audiance are Logging in " Event 3 please wait until i signal ]

后,事件2完成了它的任务

......

事件3 [演示通过乔恩斯基特超过:)]

Event 3 [ "Presentation By Jon skeet is Over :) "]

通过非常简单的例子可以任何人解释,我如何设计呢?

With very basic example can anybody explain ,how can i design this ?

推荐答案

一个非常简单的解决方案,这也是近究竟在ASP.NET情况:

A very simple solution, that is also close to what actually happens in ASP.NET:

class EventChain
{    
    public event EventHandler Phase1Completed;
    public event EventHandler Phase2Completed;
    public event EventHandler Phase3Completed;

    protected void OnPhase1Complete()
    {
        if (Phase1Completed != null)
        {
            Phase1Completed(this, EventArgs.Empty);
        }
    }

    public void Process()
    {
        // Do Phase 1
        ...
        OnPhase1Complete();

        // Do Phase 2
        ...
        OnPhase2Complete();    
    }
}

这篇关于C#-Pipeline风格的事件模型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆