Async await, использование - C#

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

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

Знатоки, есть ли разница между написанием? Я где-то читал, что второй способ хуже, ибо создается IO поток и CPU, а в первом только IO Первый вариант
Листинг программы
  1. private async void button1_Click(object sender, EventArgs e)
  2. {
  3. var soo1 = await Task.Factory.StartNew(One);
  4. MessageBox.Show(soo1.ToString());
  5. }
  6. private bool One()
  7. {
  8. Thread.Sleep(3000);
  9. return false;
  10. }
  11. }
Второй вариант
Листинг программы
  1. private async void button1_Click(object sender, EventArgs e)
  2. {
  3. var soo1 = await Two();
  4. MessageBox.Show(soo2.ToString());
  5. }
  6. private Task<bool> One()
  7. {
  8. return Task.Run(() =>
  9. {
  10. Thread.Sleep(3000);
  11. return false;
  12. });
  13. }

Решение задачи: «Async await, использование»

textual
Листинг программы
  1. using System;
  2. using System.Threading.Tasks;
  3.  
  4. namespace ConsoleApp7
  5. {
  6.     class Program
  7.     {
  8.         static void Main(string[] args)
  9.         {
  10.             var t1 = Method1();
  11.             var t2 = Method2();
  12.  
  13.             Console.WriteLine(t1.Result);
  14.             Console.WriteLine(t2.Result);
  15.  
  16.             Console.ReadKey();
  17.         }
  18.  
  19.         private static async Task<int> Method1()
  20.         {
  21.             return await Task.Run(() => { return 42; });
  22.         }
  23.  
  24.         private static async Task<int> Method2()
  25.         {
  26.             return await Task.Factory.StartNew(() => { return 42; });
  27.         }
  28.     }
  29. }

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


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

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

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

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут