static WordNetLookup <TWord> LazyLoad <TWord>(WordNetLookup <TWord> wordNetLookup) where TWord : Word { var resourceName = typeof(TWord).Name + " Association Map"; ResourceLoading(null, new ResourceLoadEventArgs(resourceName, 0, 0)); wordNetLookup.ProgressChanged += ResourceLoading; var(load, timer) = Time(wordNetLookup.Load); load(); ResourceLoaded(wordNetLookup, new ResourceLoadEventArgs(resourceName, increment: 1 / 5f, timer.ElapsedMilliseconds)); return(wordNetLookup); }
static IImmutableSet <string> GetSynonymsCore <TWord>(TWord word, ConcurrentSetDictionary cache, WordNetLookup <TWord> lookup) where TWord : Word => cache.GetOrAdd(word.Text, key => lookup[key]);