Редактировал(а) Alexandr Fokin 2024/03/23 17:02

<
От версии < 1.4 >
отредактировано Alexandr Fokin
на 2023/01/11 14:48
К версии < 6.6
отредактировано Alexandr Fokin
на 2024/03/23 17:02
Изменить комментарий: К данной версии нет комментариев

Комментарий

Подробности

Свойства страницы
Родительский документ
... ... @@ -1,1 +1,1 @@
1 -Разработка.NET.C#.Многопоточность.Сценарии.WebHome
1 +Разработка.NET.C#.Многопоточность и асинхронность.Сценарии.WebHome
Содержимое
... ... @@ -1,10 +1,10 @@
1 -[[Проблемы>>doc:Разработка.NET.C#.Многопоточность.Асинхронность\. Async Await.Проблемы.WebHome]]
2 -
3 -----
4 -
5 -
6 -{{code language="C#"}}
7 -[TestMethod]
1 +| |В данном примере мы имитируем ограничение на использование одного потока (которые возникает в некоторых типах приложений, [[SynchronizationContext ~~| Контекст синхронизации>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Асинхронность\. Async Await.SynchronizationContext | Контекст синхронизации.WebHome]]).
2 +После этого мы блокируем поток синхронным ожидаем, из-за чего асинхронная задача не может выполнить продолжение (continuation), т.к. она тоже запланирована на выполнение в этом (заблокированном) потоке.
3 +| |[[Асинхронность. Async Await>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Асинхронность\. Async Await.WebHome]]
4 +[[Проблемы>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Асинхронность\. Async Await.Проблемы.WebHome]]
5 +| |[[Task Factory>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Task Factory.WebHome]]
6 +[[SynchronizationContext ~~| Контекст синхронизации>>doc:Разработка.NET.C#.Многопоточность и асинхронность.Асинхронность\. Async Await.SynchronizationContext | Контекст синхронизации.WebHome]]
7 +| |{{code language="C#"}}[TestMethod]
8 8  public async Task AsyncDeadlockTest1Async()
9 9  {
10 10   var delay = TimeSpan.FromMilliseconds(100);
... ... @@ -48,5 +48,4 @@
48 48   await Assert.ThrowsExceptionAsync<OperationCanceledException>(
49 49   async () => await task
50 50   );
51 -}
52 -{{/code}}
51 +}{{/code}}