Advertisement
Guest User

Untitled

a guest
Apr 21st, 2017
58
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.53 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement