Ejemplo n.º 1
0
        public static List <ParallelSearchRes> ArrayThreadTask(object paramObj)
        {
            ParallelSearchThreadParam param = (ParallelSearchThreadParam)paramObj;
            string wordUpper = param.wordPattern.Trim().ToUpper();
            List <ParallelSearchRes> Result = new List <ParallelSearchRes>();

            foreach (string str in param.tempList)
            {
                int dist = ab5library.EditDistanse.Distance(str.ToUpper(), wordUpper);
                if (dist <= param.maxDist)
                {
                    ParallelSearchRes temp = new ParallelSearchRes()
                    {
                        word = str, dist = dist, ThreadNum = param.ThreadNum
                    };
                    Result.Add(temp);
                }
            }
            return(Result);
        }
Ejemplo n.º 2
0
        public static List <ParallelSearchRes> ArrayThreadTask(object paramObj) // выполняется в параллельном потоке для поиска строк
        {
            ParallelSearchThreadParam param = (ParallelSearchThreadParam)paramObj;
            string wordUpper = param.wordPattern.Trim().ToUpper();                     // слово для поиска в верхнем регистре
            List <ParallelSearchRes> Result = new List <ParallelSearchRes>();          // результаты поиска в одном потоке

            foreach (string str in param.tempList)                                     // перебор всех слов во временном списке данного потока
            {
                int dist = ab5library.EditDistanse.Distance(str.ToUpper(), wordUpper); // вычисление расстояния Дамерау-Левенштейна
                if (dist <= param.maxDist)                                             // условие добавления слова в результат
                {
                    ParallelSearchRes temp = new ParallelSearchRes()
                    {
                        word = str, dist = dist, ThreadNum = param.ThreadNum
                    };
                    Result.Add(temp);
                }
            }
            return(Result);
        }