private void RaisePropertyChanged(string name) { var local = PropertyChanged; if (local != null) { Action action = () => local(this, new PropertyChangedEventArgs(name)); if (m_Context.IsSynchronized) { action(); } else { m_Context.Invoke(action); } } }
public MachineSelectorModel( IContextAware context, IEnumerable<DistributionSuggestion> suggestions, TaskScheduler scheduler = null) : base(context) { { Enforce.Argument(() => suggestions); } Action action = () => { IsLoading = true; foreach (var suggestion in suggestions) { var temp = suggestion; if (context.IsSynchronized) { m_Proposals.Add(temp); } else { context.Invoke(() => m_Proposals.Add(temp)); } } IsLoading = false; }; Task.Factory.StartNew( action, new CancellationToken(), TaskCreationOptions.LongRunning, scheduler ?? TaskScheduler.Default); }
public MachineSelectorModel( IContextAware context, IEnumerable <DistributionSuggestion> suggestions, TaskScheduler scheduler = null) : base(context) { { Enforce.Argument(() => suggestions); } Action action = () => { IsLoading = true; foreach (var suggestion in suggestions) { var temp = suggestion; if (context.IsSynchronized) { m_Proposals.Add(temp); } else { context.Invoke(() => m_Proposals.Add(temp)); } } IsLoading = false; }; Task.Factory.StartNew( action, new CancellationToken(), TaskCreationOptions.LongRunning, scheduler ?? TaskScheduler.Default); }