private async Task ProcessBackgroundTranslateAsync() { try { var ListVocabulary = DataAccess.GetListVocabularyToTranslate(); ParallelOptions parallelOptions = new ParallelOptions(); parallelOptions.MaxDegreeOfParallelism = Environment.ProcessorCount * 2; // TODO await Task.Run(() => Parallel.ForEach(ListVocabulary, parallelOptions, async _item => { await TranslateService.goTranslateAsync(_item); })); Helper.ShowToast("Crawling: Process Background Translate Finished."); } catch (Exception ex) { Helper.ShowToast("Crawling: Process Background Translate Failed: " + ex.Message); } }