在连接两个Func时阻止第二个Func执行

时间:2017-04-11 19:20:07

标签: c# asp.net asp.net-core

我们来看下面的例子:

    public void Configure(IApplicationBuilder app)
    {
        RequestDelegate a = async (ctx) =>
        {
            if (1 == 1)
            {
                ctx.Response.StatusCode = 500;
                await ctx.Response.WriteAsync("I'm done");
                return;
            }
        };
        RequestDelegate b = async (ctx) => await ctx.Response.WriteAsync("Please don't hit this"); ;

        RequestDelegate c = a += b;

        app.Run(c);
    }

由于两个函数已与c变量连接,因此两个函数都将被执行。我正在尝试做的是在第一个函数中发出信号,我不希望执行第二个函数,它应该返回HttpResponse,因为它在第一个函数中。

显然在这个简单的例子中,我可以使用全局布尔值等,但这不是我所得到的,如果你有2个funcs串联可能来自2个独立的库,那么有没有办法使第二个函数不执行时你无法控制执行,你只知道funcs将由你无法控制的其他东西执行。

0 个答案:

没有答案