private void _scheduleCheckTimer_Elapsed(object sender, ElapsedEventArgs e) { IEnumerable <ScheduleItem> validItems = _scheduleService.GetQualifiedItems(_data.Items).Cast <ScheduleItem>(); foreach (ScheduleItem item in validItems) { if (_CanExecute(item)) { _synchronizationContext.Post((o) => _Execute(o as ScheduleItem), item); } } }