asyncawaaait
Re:.NET 5.0
on Tuesday November 10, 2020 @08:31PM (#25054565)
Stack traces were massively improved in 2.1.
Using a good IDE (Rider or Visual Studio), debugging async/await code works as expected.
Are you doing interop or calling unmanaged code?
There is a resource tradeoff. async/await has a minor CPU/memory impact, but it can also free up threads to do other work during an I/O bound operation.
Threads have their own resource cost.
How does async/await introduce complexity where threading wouldn’t?
In my experience, the complexity is vastly reduced by not having to implement tricky asynchronous APIs (Task Paralell, thread pools, BackgroundWorker, etc).
Awaiting a storage operation (ie. look up user) in C# will allow other calls to proceed until the I/O is available to read.
Synchronous code locks you into the model of handling one request per thread.
Given the minor overhead (both cognitive and runtime) of a sync/await, I can’t see why you wouldn’t want to do it here.