A question came up in a recent PR review about whether or not an AsyncLocal<IDictionary<>> should use ConcurrentDictionary<>. My thinking is that it does not need to because an AsyncLocal value won't be accessed by multiple threads at the same time. But I want to be certain.
Do we need to worry about thread-safety of objects kept in AsyncLocal? Please explain why or why not. Bonus points for a unit test demonstrating the asserted answer.

