Re: async\await и подсказки от ide, плагины
От: Jericho113 Украина  
Дата: 21.01.20 12:00
Оценка: 81 (3)
Здравствуйте, Sharov, Вы писали:
S>
S>private static async void Test()
S>{
S>            var tcs = new TaskCompletionSource<int>();
S>}
S>


S>Есть ли какие-нибудь студийные плагины или для R#, которые все бы это могли как-то отметить\выделить. Т.е. после выполнения кода Х стартует выполнение кода Y.

S>Или это крайне нетривиальная задача?

Основываясь на выводах статьи The danger of TaskCompletionSource class
Нужна простая проверка что все
TaskCompletionSource
создаются с флагом
TaskCreationOptions.RunContinuationsAsynchronously

Я к сожалению не знаю такого плагина для R# или других аддонов для студии которые делают такую подсказку.

Да и еще один момент — вам действительно нужно объявлять тестовый метод как
async void
?
Я очень настороженно отношусь к такому объявлению с тех пор как получил в продакшене руины сервиса по необработанному исключению которое благополучно
миновало все try/catch и ,если это не обработчик асинхронного события, вместо
async void
пишу
async Task
.
Согласен что не очень привычно объявлять возвращаемый тип который явно не возвращается из метода но все же лучше так чем необработанное исключение.
NetDigitally yours ....
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.