public static List <ParallelSearchResult> ArrayThreadTask(object paramObj) { ParallelSearchThreadParam param = (ParallelSearchThreadParam)paramObj; string wordUpper = param.wordPattern.Trim().ToUpper(); //Результаты поиска в одном потоке List <ParallelSearchResult> Result = new List <ParallelSearchResult>(); //Перебор всех слов во временном списке данного потока foreach (string str in param.tempList) { //Вычисление расстояния Дамерау-Левенштейна int dist = EditDistance.Distance(str.ToUpper(), wordUpper); //Если расстояние меньше порогового, то слово добавляется в результат if (dist <= param.maxDist) { ParallelSearchResult temp = new ParallelSearchResult() { word = str, dist = dist, ThreadNum = param.ThreadNum }; Result.Add(temp); } } return(Result); }
public static List <ParallelSearchResult> ArrayThreadTask(object t_param) { ParallelSearchThreadParam param = t_param as ParallelSearchThreadParam; string word_temp = param.wordTemp.Trim(); List <ParallelSearchResult> result_list = new List <ParallelSearchResult>(); foreach (string str in param.searchList) { int dist = Fisher.GetLen(str.ToUpper(), word_temp.ToUpper()); if (dist <= param.maxDist) { ParallelSearchResult temp_list = new ParallelSearchResult() { word = str, dist = dist, threadNum = param.threadNum }; result_list.Add(temp_list); } } return(result_list); }
public static List <ParallelSearchResult> ArrayThreadTask(object paramObj) { ParallelSearchThreadParam param = (ParallelSearchThreadParam)paramObj; string wordUpper = param.wordPattern.Trim().ToUpper(); List <ParallelSearchResult> Result = new List <ParallelSearchResult>(); foreach (string str in param.tempList) { int dist = Levensthtain.Distance(str.ToUpper(), wordUpper); if (dist <= param.maxDist) { ParallelSearchResult temp = new ParallelSearchResult() { word = str, dist = dist, ThreadNum = param.ThreadNum }; Result.Add(temp); } } return(Result); }