Как выполняется метод, использующий 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)) { //............ } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д