Использование async/await - C#

Узнай цену своей работы

Формулировка задачи:

пытался написать такой тестовый код: нифига не работает, я видимо что-то неправильно делаю. Что именно, не знаю
using System;
using System.Threading;
using System.Threading.Tasks;
 
namespace ConsoleApplication40
{
    class Program
    {
        static void Main()
        {
            var task = Task.Factory.StartNew(Body);
            task.Wait();
            Console.ReadKey();
        }
 
        private static async void Body()
        {
            var r1 = await Post();
            Console.WriteLine("r1 started");
            var r2 = await Post();
            Console.WriteLine("r2 started");
            Console.WriteLine("r1 = {0}, r2 = {1}", r1, r2);
        }
 
        public static async Task<bool> Post()
        {
            return await Task.Factory.StartNew(() =>
                {
                    Thread.Sleep(1000);
                    Console.WriteLine("Task finished");
                    return true;
                });
        }
    }
}
А когда написал так, заработало
using System;
using System.Threading;
using System.Threading.Tasks;
 
namespace ConsoleApplication40
{
    class Program
    {
        static void Main()
        {
            var task = Task.Factory.StartNew(Body);
            task.Wait();
            Console.ReadKey();
        }
 
        private static async void Body()
        {
            Console.WriteLine("Beginning r1");
            var r1 = await Post();
            Console.WriteLine("Beginning r2");
            var r2 = await Post();
            Console.WriteLine("r1 = {0}, r2 = {1}", r1, r2);
        }
 
        public static async Task<bool> Post()
        {
            return await Task.Factory.StartNew(() =>
                {
                    Thread.Sleep(1000);
                    Console.WriteLine("Task finished");
                    return true;
                });
        }
    }
}
нифига не врубаюсь.

Решение задачи: «Использование async/await»

textual
Листинг программы
        async void SelectMC()
        {
            workout.Clear();
            if (Tools.FlagMC != 0)
            {
                if (WindowState == FormWindowState.Normal) ClientSize = new Size(1195, 679);
                await Task.Delay(100);
                Controls.Remove(info_calculator);
                workin.PageAndObjectAdd();
                SplitContainer.Visible = true;
                if(workin.Panel.TabCount != 0) tools.logotype_image(workin.Panel.SelectedTab.Name);
            }
            else
            {
                SplitContainer.Visible = false;
                Controls.Add(info_calculator);
                tools.logotype_image("default");
                if (WindowState == FormWindowState.Normal) ClientSize = new Size(954, 151);
            }
        }

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 4 из 5