private async void FetchInfos() { Bitmap bitmap = new Bitmap(16, 16); await Task.Run(() => { var processName = AppId.Remove(AppId.Length - 4, 4); var processes = Process.GetProcessesByName(processName); if (processes?.Length > 0) { sourceProcess = processes[0]; try { AppName = sourceProcess.MainModule.FileVersionInfo.FileDescription; } catch { } try { var path = sourceProcess.MainModule.FileName; var ie = new IconExtractor(path); var icon = ie.GetIcon(0); bitmap = icon.ToBitmap(); } catch { } } }); if (bitmap != null) { Application.Current.Dispatcher.Invoke(() => { AppImage = Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); }, System.Windows.Threading.DispatcherPriority.Send); } InfoFetched?.Invoke(this, null); }