private void ThreadProc(Object loginValidationAction) { if (loginValidationAction == null) { return; } if (loginValidationAction is LoginValidationFilterBase <FilterResult, LoginValidationParam> ) { LoginValidationFilterBase <FilterResult, LoginValidationParam> action = loginValidationAction as LoginValidationFilterBase <FilterResult, LoginValidationParam>; action.OnSubscribe += new LoginValidationFilterBase <FilterResult, LoginValidationParam> .SubscribeHandle(Action_OnSubscribe); FilterResult filterResult = action.Filter(_loginValidationParam) as FilterResult; if (filterResult != null) { if (!filterResult.Success) { if (!string.IsNullOrEmpty(filterResult.ErrorMsg) && this._onThrowErr != null) { this._onThrowErr(filterResult.ErrorMsg); } this._checkSuccess = false; } } } _threadSignal--; }
/// <summary> /// 执行验证队列 /// </summary> private FilterResult ExecuteLoginValidationSeq() { if (_loginValidationFilterDetailList == null) { ReadFilter(); } IList <IList <LoginValidationFilterDetail> > executeList = GetExecuteList(); //等待Container预加载完毕 while (_container == null) { Thread.Sleep(10); } FilterResult filterResult = new FilterResult() { Success = true, ErrorMsg = string.Empty }; foreach (IList <LoginValidationFilterDetail> details in executeList) { foreach (LoginValidationFilterDetail detail in details) { //INGAopContainer container = new NGAopContainer(LoginValidationConfigFile, "ng"); LoginValidationFilterBase <FilterResult, LoginValidationParam> loginValidationAction = _container.Resolve <LoginValidationFilterBase <FilterResult, LoginValidationParam> >(detail.FullType); //_threadSignal++; //ThreadPool.QueueUserWorkItem(new WaitCallback(ThreadProc), obj); if (loginValidationAction == null) { break; } if (loginValidationAction is LoginValidationFilterBase <FilterResult, LoginValidationParam> ) { LoginValidationFilterBase <FilterResult, LoginValidationParam> action = loginValidationAction as LoginValidationFilterBase <FilterResult, LoginValidationParam>; filterResult = action.Filter(_loginValidationParam) as FilterResult; if (filterResult != null) { if (!filterResult.Success) { return(filterResult); } } } } } return(filterResult); }