private void OpenNewWindows() { filteredMatches = filteredMatches.ToList(); Application.Current.Dispatcher.Invoke(() => { foreach (var pair in parsersDict) { foreach (var match in pair.Value.MatchDict) { if (filteredMatches.Contains(match.Key)) { var tabs = Tabs.Where((e) => e.Control.matchUrl == match.Value); if (tabs.Count() > 0) { tabs.First().LastRefresh = DateTime.Now; } else { var control = new MatchParserControl(pair.Value, pair.Key, match.Value, match.Key); Tabs.Add(new MatchParserModel() { Control = control, Header = string.Format("{0}: ", pair.Key), Color = "Red", LastRefresh = DateTime.Now }); TabsChanged?.Invoke(this, null); } //System.Threading.Thread.Sleep(1000); } } } }); }
private void CloseNotActiveWindows() { Application.Current.Dispatcher.Invoke(() => { var notActiveMatchArray = Tabs.Where(e => DateTime.Now - e.LastRefresh > TimeSpan.FromMinutes(1)) .ToArray(); foreach (var key in notActiveMatchArray) { Tabs.Remove(key); TabsChanged?.Invoke(this, null); } }); }
protected void RaiseTabsChanged() { TabsChanged?.Invoke(this, EventArgs.Empty); }