AsyncEx icon indicating copy to clipboard operation
AsyncEx copied to clipboard

Add WaitAndUnwrapException for ValueTask

Open GSPP opened this issue 2 years ago • 2 comments

This is a useful little helper method. Would be useful for ValueTask, too.

GSPP avatar Dec 30 '21 13:12 GSPP

There are some APIs in this library (like WaitAndUnwrapException) that are not really recommended, but included either for historical reasons or because they've got some sharp corners in their implementation.

It may make sense to bring this API forward for ValueTask, but I'll have to think about it. It also wouldn't be recommended, and the implementation is the same as the workaround for the missing API: just call AsTask followed by WaitAndUnwrapException. I'm leaning against including this API for ValueTask because waiting on value tasks isn't permitted (so this API would muddy the waters for devs learning about value tasks), but I'll think about it.

StephenCleary avatar Dec 30 '21 14:12 StephenCleary

Right, so my motivation is to use this in cases where sync-over-async is warranted. These cases do exist. It can be due to an interface, but it can also be useful in an application that does not benefit from async IO when you have to use an async-only library. Then, instead of infecting everything with async for zero gain, you just block in a few places. I understand that the .NET community has developed an outright disdain for doing so but I believe it to be a rational engineering choice.

GSPP avatar Dec 31 '21 07:12 GSPP