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("Обработка и запись завершены");
}
}