private void Run(CancellationToken cancellationToken) { LocalizationHelper.InitThread(); try { using (QueryRequest.QueryLock.GetReadLock()) { var queryResults = QueryResults.Empty .SetParameters(QueryRequest.QueryParameters) .SetSourceRows(RowSource.ListRowItems()); queryResults = RunAll(cancellationToken, queryResults); QueryRequest.SetFinalQueryResults(queryResults); } } catch (OperationCanceledException) { } catch (Exception e) { if (!(e.InnerException is OperationCanceledException)) { QueryRequest.OnUnhandledException(e); } } }
private void Reset() { lock (this) { Stop(); SourceRowItems = ImmutableList.ValueOf(RowSource.ListRowItems()); EnsureRunning(); } }
public void Start() { lock (this) { if (null != _cancellationTokenSource) { throw new InvalidOperationException(); } RowSource.RowSourceChanged += RowSourceChanged; _rootCancellationToken.Register(() => RowSource.RowSourceChanged -= RowSourceChanged); SourceRowItems = ImmutableList.ValueOf(RowSource.ListRowItems()); EnsureRunning(); } }
private void Run() { try { var queryResults = QueryResults.Empty .SetParameters(QueryRequest.QueryParameters) .SetSourceRows(RowSource.ListRowItems()); queryResults = RunAll(QueryRequest.CancellationToken, queryResults); QueryRequest.SetFinalQueryResults(queryResults); } catch (OperationCanceledException) { // ignore } catch (Exception ex) { QueryRequest.OnUnhandledException(ex); } }