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


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

class Program
{
    static async Task Main()
    {
        // Подготовка тестовых файлов
        File.WriteAllText("text1.txt", "Это пример текста для чтения.");
        File.WriteAllText("file1.txt", "Первый файл");
        File.WriteAllText("file2.txt", "Второй файл");
        File.WriteAllText("file3.txt", "Третий файл");
        File.WriteAllText("data.txt", "hello world");

        // Задание 1: асинхронное чтение файла
        Console.WriteLine("=== Задание 1 ===");
        Task<string> zadachaChteniya = File.ReadAllTextAsync("text1.txt");
        Console.WriteLine("Основной поток: делаю другие дела...");
        string text = await zadachaChteniya;
        Console.WriteLine($"Содержимое файла: {text}\n");

        // Задание 2: асинхронная запись в файл
        Console.WriteLine("=== Задание 2 ===");
        Task zapis = File.WriteAllTextAsync("output.txt", "Новые данные");
        for (int i = 1; i <= 3; i++)
        {
            Console.WriteLine($"Основной поток: работа {i}");
            await Task.Delay(100);
        }
        await zapis;
        Console.WriteLine("Запись завершена\n");

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

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