protected IEnumerable <SoftwareIdentity> ProcessProvider(PackageProvider provider) { using (var packages = provider.GetInstalledPackages("", this).CancelWhen(_cancellationEvent.Token)) { foreach (var p in packages) { _providersProcessed.AddOrSet(provider.ProviderName, true); yield return(p); } } }
protected IEnumerable <SoftwareIdentity> ProcessNames(PackageProvider provider, string name) { _namesProcessed.GetOrAdd(name, () => false); using (var packages = provider.GetInstalledPackages(name, this).CancelWhen(_cancellationEvent.Token)) { foreach (var p in packages) { _namesProcessed.AddOrSet(name, true); _providersProcessed.AddOrSet(provider.ProviderName, true); yield return(p); } } }