static async Task Main(string[] args) { try { Console.Write(DateTime.Now.ToString() + " - Enter nickname: "); nickname = Console.ReadLine(); HttpClient httpClient = new HttpClient(); HttpResponseMessage status = await httpClient.GetAsync(url); switch (status.StatusCode) { case HttpStatusCode.OK: Console.WriteLine(DateTime.Now.ToString() + " - Клиент подключен к серверу по адресу - " + url); break; case HttpStatusCode.Forbidden: Console.WriteLine(DateTime.Now.ToString() + " - У клиента отсутствует доступ к серверу по адресу - " + url); break; case HttpStatusCode.NotFound: Console.WriteLine(DateTime.Now.ToString() + " - Сервер по адресу - " + url + " не найден"); break; case HttpStatusCode.ServiceUnavailable: Console.WriteLine(DateTime.Now.ToString() + " - Сервер по адресу - " + url + " недоступен"); break; default: break; } HttpResponseMessage msg = await httpClient.PostAsync(url, new StringContent(nickname, Encoding.UTF8)); string result = msg.Content.ReadAsStringAsync().Result; Console.WriteLine(DateTime.Now.ToString() + " - " + result); byte[] content = await httpClient.GetByteArrayAsync(url); BinaryFormatter binaryFormatter = new BinaryFormatter(); using (MemoryStream stream = new MemoryStream(content)) { gaussMethod = (GaussMethod)binaryFormatter.Deserialize(stream); } gaussMethod.SolveMatrix(); Console.WriteLine(gaussMethod.ToString()); /*string content = await httpClient.GetStringAsync(url); * Console.WriteLine(content);*/ } catch (Exception e) { Console.WriteLine(e.Message); } Console.ReadKey(); }
static void Main(string[] args) { Stopwatch stopwatch = new Stopwatch(); stopwatch.Start(); GaussMethod gauss = new GaussMethod(num, num); gauss.RandomInit(num, num); Task <string> rightStringTask = new Task <string>(() => GaussMethod.ArrayToString(gauss.rightPart)); Task <string> matrixStringTask = new Task <string>(() => GaussMethod.MatrixToString(gauss.matrix)); Task[] tasks1 = new Task[2] { rightStringTask, matrixStringTask }; for (int i = 0; i < tasks1.Length; i++) { tasks1[i].Start(); } Task.WaitAll(tasks1); Task first = TextFileHandler.WriteToFile(TextFileHandler.RIGHT_PART_FILE, rightStringTask.Result); Task second = TextFileHandler.WriteToFile(TextFileHandler.MATRIX_FILE, matrixStringTask.Result); Task third = TextFileHandler.WriteSizeInfoToFile(TextFileHandler.SIZE_INFO_FILE, gauss); Task[] tasks2 = new Task[3] { first, second, third }; for (int i = 0; i < tasks2.Length; i++) { tasks2[i].GetAwaiter().GetResult(); } Task.WaitAll(tasks2); GaussMethod gaussMethod = null; Task <GaussMethod> info = new Task <GaussMethod>(() => TextFileHandler.ReadSizeInfoFromFile(TextFileHandler.SIZE_INFO_FILE)); info.Start(); info.Wait(); gaussMethod = info.Result; Task fouth = TextFileHandler.ReadArraytFromFile(TextFileHandler.RIGHT_PART_FILE, gaussMethod.rightPart); Task fifth = TextFileHandler.ReadMatrixFromFile(TextFileHandler.MATRIX_FILE, gaussMethod.matrix); Task[] tasks3 = new Task[2] { fouth, fifth }; for (int i = 0; i < tasks3.Length; i++) { tasks3[i].GetAwaiter().GetResult(); } Task.WaitAll(tasks3); //Console.WriteLine(GaussMethod.ArrayToString(gaussMethod.rightPart)); //Console.WriteLine(GaussMethod.MatrixToString(gaussMethod.matrix)); gaussMethod.SolveMatrix(); Task sixth = TextFileHandler.WriteToFile(TextFileHandler.RESULT_FILE, GaussMethod.ArrayToString(gaussMethod.result)); sixth.GetAwaiter().GetResult(); //Console.WriteLine(gaussMethod.ToString()); stopwatch.Stop(); TimeSpan ts = stopwatch.Elapsed; string elapsedTime = String.Format("{0:00}:{1:00}:{2:00}.{3:00000000}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds / 10); Console.WriteLine("RunTime: " + elapsedTime); Console.ReadKey(); }