ReadersWriterLockAsync solves the thread affinity problem for using multiple readers and a single writer lock using async code. It also resumes awaits on the SynchronizationContext where it was started. For example on UI-threads.
$ dotnet add package VanLangen.Locking.ReadersWriterLockAsyncNo README available.