Exemple #1
0
        public static string link          = "https://www.gutenberg.org/files/1342/1342-0.txt"; // Ссылка, откуда скачиваем книгу.

        /// <summary>
        /// Чтение, изменение, запись книг из папки синхронно.
        /// </summary>
        static void SyncPart()
        {
            // Удаление директории, если она была создана. Создание дииректории.
            try
            {
                if (Directory.Exists(directorySync))
                {
                    Directory.Delete(directorySync, true);
                }
                Directory.CreateDirectory(directorySync);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }


            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine("Работа синхронного метода.");
            Console.ForegroundColor = ConsoleColor.White;

            // Запуск таймера, изменение содержимого книг.
            Stopwatch timer = new Stopwatch();

            timer.Start();
            try
            {
                foreach (String path in Directory.GetFiles(directoryName))
                {
                    BookWork.ChangeBook(path, true);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
            timer.Stop();

            // Вывод инфы о проделанной операции.
            string syncTime = String.Format("{0:00}.{1:000}", timer.Elapsed.Seconds, timer.Elapsed.Milliseconds);

            Console.ForegroundColor = ConsoleColor.Magenta;
            Console.WriteLine("Не асинхронная обработка заняла: " + syncTime + "секунд.");
            Console.ForegroundColor = ConsoleColor.White;
        }
Exemple #2
0
        /// <summary>
        /// Чтение, изменение, запись книг из папки асинхронно.
        /// </summary>
        public static async Task AsyncPart()
        {
            // Удаление директории, если она была создана. Создание дииректории.
            try
            {
                if (Directory.Exists(directoryAsync))
                {
                    Directory.Delete(directoryAsync, true);
                }
                Directory.CreateDirectory(directoryAsync);
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

            Stopwatch timer = new Stopwatch();

            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("Работа асинхронного метода.");
            Console.ForegroundColor = ConsoleColor.White;

            // Запуск таймера, изменение содержимого книг.
            timer.Start();
            await Task.WhenAll(Directory.GetFiles(directoryName).Select(file => Task.Run(() => BookWork.ChangeBook(file, false))));

            timer.Stop();

            // Вывод инфы о проделанной операции.
            Console.ForegroundColor = ConsoleColor.Yellow;
            string asyncTime = String.Format("{0:0}.{1:000}", timer.Elapsed.Seconds, timer.Elapsed.Milliseconds);

            Console.WriteLine("Асинхронная обработка заняла: " + asyncTime + " секунд.");
            Console.ForegroundColor = ConsoleColor.White;
        }