await'ить ValueTask? В доке написано просто "так не делай", но почему не объясняется
Потому что ValueTask это такой легковесный таск для байтофилов (и аллокаторофобов) и поэтому часть кейсов обычного таска не поддерживаются, в частности несколько авэйтов, да
Это понятно, но вот ты пишешь часть кейсов не поддерживается, а как мне вызвать неправильное поведение при дабл эвейте? Когда я пробую конкурентно ожидать или просто несколько раз ожидать — все нормально выполняется
У тебя задача сломать его и увидеть некоректное поведение?
Ну хз, может неправильно ломаеш) это код надо смотреть
вот например как тауб показывает https://devblogs.microsoft.com/dotnet/understanding-the-whys-whats-and-whens-of-valuetask/
а что ты пробовал? попробуй вот так using var timer = new PeriodicTimer(TimeSpan.FromSeconds(1)); var task = timer.WaitForNextTickAsync(); await task; await task;
Плохой пример. Там не из-за ValueTask будет эксепшен.
дома разберу почему ValueTask именно с этого метода падает при дабл эвейте
Обсуждают сегодня