In a C# Concurrent Dictionary, specifically the signature . . .
public TValue GetOrAdd(TKey key, Func<TKey, TValue> valueFactory)
. . . I know it is possible for valueFactory to be called multiple times. What happens to the multiple return values though? Is it guaranteed that only one result will ever be mapped in the dictionary, or is there any possibility that there is a window where other threads can see different values in the dictionary?