Загрузка данных


using System;
using System.IO;
using System.Threading.Tasks;

class Program
{
    static async Task Main()
    {
        // Задание 1: асинхронное чтение файла
        Task chtenie = Task.Run(() => ChitatFail("text1.txt"));
        Console.WriteLine("Основной поток: делаю другие дела...");
        await chtenie;
        Console.WriteLine("---");

        // Задание 2: асинхронная запись в файл
        Task zapis = ZapisatFail("output.txt", "Привет, мир!");
        for (int i = 1; i <= 3; i++)
        {
            Console.WriteLine($"Статус: выполняю другую работу {i}");
            await Task.Delay(200);
        }
        await zapis;
        Console.WriteLine("---");

        // Задание 3: параллельное чтение нескольких файлов
        string[] faili = { "file1.txt", "file2.txt", "file3.txt" };
        Task[] chteniya = new Task[faili.Length];
        for (int i = 0; i < faili.Length; i++)
        {
            int index = i;
            chteniya[index] = Task.Run(() => ProchitatIvivesti(faili[index]));
        }
        await Task.WhenAll(chteniya);
        Console.WriteLine("---");

        // Задание 4: цепочка асинхронных задач
        string vhod = "data.txt";
        string izhod = "result.txt";
        string soderzhimoe = await File.ReadAllTextAsync(vhod);
        string obrabotannoe = soderzhimoe.ToUpper();
        await File.WriteAllTextAsync(izhod, obrabotannoe);
        Console.WriteLine($"Обработка завершена. Результат в {izhod}");
    }

    static void ChitatFail(string imya)
    {
        string text = File.ReadAllText(imya);
        Console.WriteLine($"Содержимое {imya}:\n{text}");
    }

    static async Task ZapisatFail(string imya, string soderzhimoe)
    {
        using (StreamWriter sw = new StreamWriter(imya))
        {
            await sw.WriteAsync(soderzhimoe);
        }
        Console.WriteLine($"Запись в {imya} завершена");
    }

    static void ProchitatIvivesti(string imya)
    {
        string text = File.ReadAllText(imya);
        Console.WriteLine($"{imya}: {text}");
    }
}