I want to use something like GetOrAdd
with a ConcurrentDictionary
as a cache to a webservice. Is there an async version of this dictionary? GetOrAdd
will be making a web request using HttpClient
, so it would be nice if there was a version of this dictionary where GetOrAdd
was async.
To clear up some confusion, the contents of the dictionary will be the response from a call to a webservice.
ConcurrentDictionary<string, Response> _cache
= new ConcurrentDictionary<string, Response>();
var response = _cache.GetOrAdd("id",
(x) => { _httpClient.GetAsync(x).GetAwaiter().GetResponse(); });
See Question&Answers more detail:os