SHARE
TWEET

Untitled

a guest Apr 21st, 2017 44 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. class Program
  2.     {
  3.         static void Main(string[] args)
  4.         {
  5.             DisplayResultAsync();
  6.             //Для ожидания окончания работы можно сделать так
  7.             //Task t = DisplayResultAsync();
  8.             //t.Wait();
  9.             Console.ReadLine();
  10.         }
  11.  
  12.         static async void DisplayResultAsync()
  13.         {
  14.             int num = 5;
  15.  
  16.             //Ключевое слово async указывает, что метод или лямбда - выражение являются асинхронными.
  17.             //А оператор await применяется к задаче в асинхронных методах, чтобы приостановить выполнение метода до тех пор, пока эта задача не завершится.
  18.             //При этом выполнение потока, в котором был вызван асинхронный метод, не прерывается.
  19.             int result = await FactorialAsync(num);
  20.             Thread.Sleep(3000);
  21.             Console.WriteLine("Факториал числа {0} равен {1}", num, result);
  22.         }
  23.  
  24.         //cделать метод асинхронным
  25.         static Task<int> FactorialAsync(int x)
  26.         {
  27.             int result = 1;
  28.  
  29.             return Task.Run(() =>
  30.             {
  31.                 for (int i = 1; i <= x; i++)
  32.                 {
  33.                     result *= i;
  34.                 }
  35.                 return result;
  36.             });
  37.         }
  38.     }
RAW Paste Data
Top