Как выполняется метод, использующий async и await? - C#
Формулировка задачи:
НаMSDN есть такой пример:
Когда мы попадаем в DoIndependentWork();, то метод client.GetStringAsync("http://msdn.microsoft.com") время от времени тоже получает квант времени на свою работу?
Или задача целиком выполняется в это месте: string urlContents = await getStringTask; ?
Листинг программы
- 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;
- }
Решение задачи: «Как выполняется метод, использующий 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))
- {
- //............
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д