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

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

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

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

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

textual
Листинг программы
       ConcurrentQueue<SomeClass> ProcessingQueue = new ConcurrentQueue<SomeClass>();
       CancellationTokenSource tokenSource;
       CancellationToken cancelToken;
       //.....
       tokenSource = new CancellationTokenSource();
       cancelToken = tokenSource.Token;
 
       Task.Factory.StartNew(new Action(DequeueToStorage));
       Task.Factory.StartNew(new Action(DequeueToStorage));
 
       //...........
        void DequeueToStorage()
        {
            SomeClass curr;
 
            while (!cancelToken.IsCancellationRequested)
            {
                if (ProcessingQueue.TryDequeue(out curr))
                {
                //............
                }
            }
        }

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


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

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

5   голосов , оценка 4.2 из 5
Похожие ответы