private void ProcessAction(ActionBase a) { try { a.Action(); Dispatcher.BeginInvoke(new Action(() => { _toDo.Remove(a); _done.Add(a); })); } catch (Exception e) { Debug.WriteLine(a + " " + e.Message); Dispatcher.BeginInvoke(new Action(() => { logBox.Text += a + " " + e.Message + "\r\n"; })); } }