Ejemplo n.º 1
0
        /// <summary>
        /// 根据流程ID得到流程
        /// </summary>
        /// <param name="processID"></param>
        /// <returns></returns>
        public static IWfProcess GetProcessByProcessID(string processID)
        {
            processID.NullCheck <WfRuntimeException>("processID");

            IWfProcess result = WfProcessContextCache.Instance.GetOrAddNewValue(processID, (cache, key) =>
            {
                IWfProcess process = null;

                PerformanceMonitorHelper.GetDefaultMonitor().WriteExecutionDuration(string.Format("Load Process({0})", processID), () =>
                {
                    IWfProcessPersistManager persistManager = WorkflowSettings.GetConfig().GetPersistManager();

                    process = persistManager.LoadProcessByProcessID(key);

                    cache.Add(key, process);
                });

                return(process);
            });

            return(result);
        }