Esempio n. 1
0
        public HandlerItem[] GetResultsFor(string search)
        {
            ThreadGroup        searchGroup = new ThreadGroup();
            List <HandlerItem> ret         = new List <HandlerItem>();

            foreach (GenericHandler handlerx in handlers)
            {
                GenericHandler handler = handlerx;
                searchGroup.AddAndRun(delegate()
                {
                    HandlerItem[]  tmp = handler.GetResultsFor(search);
                    if (tmp == null)
                    {
                        return;
                    }
                    lock (ret)
                    {
                        ret.AddRange(tmp);
                    }
                });
            }
            searchGroup.WaitForCompletion();
            return(ret.ToArray());
        }