private async Task UpdateListCaches() { AllChars = await Task.Run(() => ActiveList.Concat(InactiveList).ToList()); Allies = await Task.Run(() => AllChars.Where(x => x.PlayerControlled).ToList()); Enemies = await Task.Run(() => AllChars.Where(x => !x.PlayerControlled).ToList()); EventHandler handler = OnListUpdate; if (handler != null) { handler(this, EventArgs.Empty); } }