Что такое асинхронный метод C#, возвращается ли он к родительскому методу ?
Привет,
В асинхронном программировании, если метод (Дочерний метод) вызывается "асинхронно", форма внутри метода (родительский метод),
Затем он побежал параллельно. я не в состоянии понять одну вещь -
1.Есть ли у родительского метода какие-либо следы дочернего метода,так что родительский метод может быть осведомлен о том, что выполнение дочернего метода было завершено.
2.Что произойдет с дочерним методом, если выполнение родительского метода будет завершено до выполнения дочернего метода. Будет ли дочерний метод показывать выходные данные.
Что я уже пробовал:
Цитата:использование системы;
использование системы.Нарезание резьбы;
потоки пространства имен
{
публичная программа статического класса
{
//родительский метод как основной()
публичный статический пустота главный()
{
ThreadPool.QueueUserWorkItem(ChildMethod, 5);
Приставка.WriteLine("Привет, я нахожусь в Родительском методе.");
// Приставка.Линия чтения();
}
// ChildMethod этого метода
private static void ChildMethod(состояние объекта)
{
//wait метод паррэнт besacue должно быть готово перед способ ребенка.
Нить.Спать(1000);
Приставка.WriteLine("Привет, я нахожусь в детском методе.");
Приставка.Линия чтения();
}
}
}
Richard Deeming
Гораздо проще в использовании async
методы:
Асинхронное программирование | Microsoft Docs[^]
private static async Task ChildMethod() { await Task.Delay(1000); Console.WriteLine("Hi I am in Child Method."); Console.ReadLine(); } static void Main() { Task child = ChildMethod(); Console.WriteLine("Hi I am in Parent Method."); child.GetAwaiter().GetResult(); }
Если вы используете обновленную версию Visual Studio, вы даже можете сделать
Main
метод async
:static async Task Main() { Task child = ChildMethod(); Console.WriteLine("Hi I am in Parent Method."); await child; }