/// <summary> /// Метод подбора пароля к свертке. /// </summary> /// <param name="threadName"> /// Имя потока, в котором запускается метод. /// </param> public void Brut(object threadName) { while (true) { TaskFormat task; try { task = this.clientRouter.GetTask(); } catch { Console.WriteLine("Thread " + threadName.ToString() + ": Перебор закончен. Заданий от сервера не поступает."); break; } Console.WriteLine(threadName + ". Задание получено: " + task); SearchEngineSolutions searchEngineSolutions = new SearchEngineSolutions(task); AnswerFormat answer = searchEngineSolutions.FindSolution(); Console.WriteLine(threadName + ".Задание отработано: " + task); this.clientRouter.SendAnswer(answer); } // ReSharper disable FunctionNeverReturns }
/// <summary> /// Медот для запуска тестирования производительности. /// </summary> /// <returns> /// Количество операций в секунду. /// </returns> public long Run() { Console.WriteLine("Запущено тестирование производительности клиента."); Word word = new Word(5); TaskFormat tf = new TaskFormat(word.ToString(), this.PasswordCount); SearchEngineSolutions searchEngineSolutions = new SearchEngineSolutions(tf); DateTime startTime = DateTime.Now; searchEngineSolutions.FindSolution(); DateTime finishTime = DateTime.Now; var result = (this.PasswordCount / ((finishTime - startTime).Milliseconds + 1)) * 100; Console.WriteLine("Тестирование производительности клиента окончено."); Console.WriteLine( "Производительность клиента: " + result.ToString(CultureInfo.InvariantCulture) + " оп/сек"); return(result); }