void scheduleDominationAndFeedback(IDominatorItem dominator, DominationAction action) { schedule(() => { try { dominator.SetState(action); var state = dominator.QueryState(); scheduleToUI(() => feedBackState(dominator, state)); } catch (Exception e) { var state = new DominationState(e); scheduleToUI(() => feedBackState(dominator, state)); } }); }
void feedBackState(IDominatorItem dominator, DominationState state) { requireOnUIThread(); _feedback[dominator](state); }