Здравствуйте, 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
.
Согласен что не очень привычно объявлять возвращаемый тип который явно не возвращается из метода но все же лучше так чем необработанное исключение.