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