Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
11/24/15 12:20:43 (8 years ago)
Author:
jkarder
Message:

#2258: improved cancellation support

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/Async/HeuristicLab.Optimization/3.3/MetaOptimizers/Experiment.cs

    r13349 r13354  
    4040  public sealed class Experiment : NamedItem, IOptimizer, IStorableContent {
    4141    private readonly ManualResetEvent signaler = new ManualResetEvent(true);
     42    private CancellationToken cancellationToken;
    4243
    4344    public string Filename { get; set; }
     
    192193    }
    193194    public async Task StartAsync() {
    194       await StartAsync(new CancellationToken());
     195      await StartAsync(CancellationToken.None);
    195196    }
    196197    public async Task StartAsync(CancellationToken cancellationToken) {
     198      this.cancellationToken = cancellationToken;
    197199      signaler.Reset();
    198200      await Task.Run(async () => {
     
    395397        } else {
    396398          if (experimentStarted && Optimizers.Any(x => (x.ExecutionState == ExecutionState.Prepared) || (x.ExecutionState == ExecutionState.Paused))) {
    397             Optimizers.First(x => (x.ExecutionState == ExecutionState.Prepared) || (x.ExecutionState == ExecutionState.Paused)).StartAsync();
     399            Optimizers.First(x => (x.ExecutionState == ExecutionState.Prepared) || (x.ExecutionState == ExecutionState.Paused)).StartAsync(cancellationToken);
    398400          } else if (Optimizers.All(x => x.ExecutionState == ExecutionState.Stopped)) OnStopped();
    399401          else if (Optimizers.Any(x => (x.ExecutionState == ExecutionState.Prepared) || (x.ExecutionState == ExecutionState.Paused)) && Optimizers.All(o => o.ExecutionState != ExecutionState.Started)) OnPaused();
Note: See TracChangeset for help on using the changeset viewer.