internal static async ValueTask LoadAsync(IStringLocalizer localizer, bool loadParentCulture) { JsonStringLocalizerAsync?stringLocalizer; Task loadingTask; lock (PendingAsyncLocalizers) { var guid = localizer[nameof(stringLocalizerGuid)].Value; if (!PendingAsyncLocalizers.TryGetValue(guid, out stringLocalizer)) { if (!LoadingTasks.TryGetValue(guid, out loadingTask)) { return; } if (loadingTask.Status == TaskStatus.RanToCompletion) { LoadingTasks.Remove(guid); } } else { loadingTask = stringLocalizer.LoadDataAsync(loadParentCulture).AsTask(); LoadingTasks.Add(guid, loadingTask); PendingAsyncLocalizers.Remove(guid); } } await loadingTask.ConfigureAwait(false); }