Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Program
- {
- static void Main(string[] args)
- {
- DisplayResultAsync();
- //Для ожидания окончания работы можно сделать так
- //Task t = DisplayResultAsync();
- //t.Wait();
- Console.ReadLine();
- }
- static async void DisplayResultAsync()
- {
- int num = 5;
- //Ключевое слово async указывает, что метод или лямбда - выражение являются асинхронными.
- //А оператор await применяется к задаче в асинхронных методах, чтобы приостановить выполнение метода до тех пор, пока эта задача не завершится.
- //При этом выполнение потока, в котором был вызван асинхронный метод, не прерывается.
- int result = await FactorialAsync(num);
- Thread.Sleep(3000);
- Console.WriteLine("Факториал числа {0} равен {1}", num, result);
- }
- //cделать метод асинхронным
- static Task<int> FactorialAsync(int x)
- {
- int result = 1;
- return Task.Run(() =>
- {
- for (int i = 1; i <= x; i++)
- {
- result *= i;
- }
- return result;
- });
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement