using System;
using System.Threading;
using System.Threading.Tasks;
// ну типа главная хуйня
class Program
{
// старт программы
static async Task Main()
{
// печатаем заголовок
Console.WriteLine("=== АСИНХРОННЫЙ ЗАГРУЗЧИК ФАЙЛОВ ===");
Console.WriteLine();
Console.WriteLine();
// спрашиваем сколько файлов
Console.Write("Сколько файлов загрузить? ");
string vvod = Console.ReadLine();
int skolko = int.Parse(vvod);
// говорим что начали
Console.WriteLine();
Console.WriteLine("Начинаю загрузку... Ctrl+C чтобы стоп");
Console.WriteLine();
// переменные
int zagruzheno = 0;
int obshiyProgres = 0;
// ловим Ctrl+C
Console.CancelKeyPress += (a, b) =>
{
b.Cancel = true;
Console.WriteLine();
Console.WriteLine();
Console.WriteLine("Остановлено. Загружено: " + zagruzheno + " из " + skolko);
Environment.Exit(0);
};
// асинхронный цикл загрузки
while (zagruzheno < skolko)
{
// делаем вид что грузим
await Task.Delay(800);
// прибавляем
zagruzheno = zagruzheno + 1;
obshiyProgres = (zagruzheno * 100) / skolko;
// печатаем прогресс
Console.WriteLine("Файл " + zagruzheno + " из " + skolko + " загружен | прогресс: " + obshiyProgres + "%");
}
// когда всё закончилось
Console.WriteLine();
Console.WriteLine("Всё загружено нахуй!");
Console.WriteLine("Загружено файлов: " + zagruzheno);
}
}