Как выполняется метод, использующий async и await? - C#

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

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

НаMSDN есть такой пример:
Листинг программы
  1. async Task<int> AccessTheWebAsync()
  2. {
  3. HttpClient client = new HttpClient();
  4. Task<string> getStringTask = client.GetStringAsync("http://msdn.microsoft.com");
  5. DoIndependentWork();
  6. string urlContents = await getStringTask;
  7. return urlContents.Length;
  8. }
Когда мы попадаем в DoIndependentWork();, то метод client.GetStringAsync("http://msdn.microsoft.com") время от времени тоже получает квант времени на свою работу? Или задача целиком выполняется в это месте: string urlContents = await getStringTask; ?

Решение задачи: «Как выполняется метод, использующий async и await?»

textual
Листинг программы
  1.        ConcurrentQueue<SomeClass> ProcessingQueue = new ConcurrentQueue<SomeClass>();
  2.        CancellationTokenSource tokenSource;
  3.        CancellationToken cancelToken;
  4.        //.....
  5.        tokenSource = new CancellationTokenSource();
  6.        cancelToken = tokenSource.Token;
  7.  
  8.        Task.Factory.StartNew(new Action(DequeueToStorage));
  9.        Task.Factory.StartNew(new Action(DequeueToStorage));
  10.  
  11.        //...........
  12.         void DequeueToStorage()
  13.         {
  14.             SomeClass curr;
  15.  
  16.             while (!cancelToken.IsCancellationRequested)
  17.             {
  18.                 if (ProcessingQueue.TryDequeue(out curr))
  19.                 {
  20.                 //............
  21.                 }
  22.             }
  23.         }

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


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

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

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

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

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

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