public static void IndexPrograms() { Win32[] w = { }; UWP.Application[] u = { }; var t1 = Task.Run(() => { w = Win32.All(_settings); }); var t2 = Task.Run(() => { u = UWP.All(); }); Task.WaitAll(t1, t2); var characters = w.Select(p => p.Name) .Concat(w.Select(p => p.Description)) .Concat(u.Select(p => p.DisplayName)) .Concat(u.Select(p => p.Description)); Parallel.ForEach(characters, c => { if (!string.IsNullOrWhiteSpace(c) && Alphabet.ContainsChinese(c)) { Alphabet.PinyinComination(c); } }); lock (IndexLock) { _win32s = w; _uwps = u; } }
public void Init(PluginInitContext context) { this.context = context; controlPanelItems = ControlPanelList.Create(48); iconFolder = Path.Combine(context.CurrentPluginMetadata.PluginDirectory, @"Images\ControlPanelIcons\"); fileType = ".bmp"; if (!Directory.Exists(iconFolder)) { Directory.CreateDirectory(iconFolder); } foreach (ControlPanelItem item in controlPanelItems) { if (!File.Exists(iconFolder + item.GUID + fileType) && item.Icon != null) { item.Icon.ToBitmap().Save(iconFolder + item.GUID + fileType); } } Task.Run(() => { var characters = controlPanelItems.Select(i => i.LocalizedString) .Concat(controlPanelItems.Select(i => i.InfoTip)); Parallel.ForEach(characters, c => { if (!string.IsNullOrWhiteSpace(c) && Alphabet.ContainsChinese(c)) { Alphabet.PinyinComination(c); } }); }); }