Orchard源码分析(5.3):EndRequest事件处理(DefaultOrchardHost.EndRequest方法)

EndRequest事件处理的作用是处理完"处理引擎(ProcessingEngine)"中的任务(Task)。
 
        void IOrchardHost .EndRequest() {
            Logger.Debug( "EndRequest");
            EndRequest();
        }
  
         protected virtual void EndRequest() {
            // Synchronously process all pending tasks. It's safe to do this at this point
            // of the pipeline, as the request transaction has been closed, so creating a new
            // environment and transaction for these tasks will behave as expected.)
            while (_processingEngine.AreTasksPending()) {
                _processingEngine.ExecuteNextTask();
            }
        }
 
"操作引擎(Processing Engine)" 是一个任务容器,EndRequest中对添加到容器内的任务进行同步处理。关于"操作引擎"我们在适当的时候来分析。
 
相关类型:
Orchard.Environment.State.DefaultProcessingEngine: IProcessingEngine
Orchard.Environment.State.ShellStateCoordinator : IShellStateManagerEventHandler, IShellDescriptorManagerEventHandler
Orchard.Warmup.Services.WarmupScheduler : IWarmupScheduler, IWarmupEventHandler
Orchard.Recipes.Services.RecipeScheduler : IRecipeScheduler, IRecipeSchedulerEventHandler
Orchard.Indexing.Services.UpdateIndexScheduler : IUpdateIndexScheduler, IIndexNotifierHandler
posted @ 2016-03-26 12:04  心冰之海  阅读(293)  评论(0编辑  收藏  举报