Changeset 15603 for branches/GeneralizedQAP/HeuristicLab.Optimization/3.3/Algorithms/HeuristicOptimizationAlgorithm.cs
- Timestamp:
- 01/12/18 13:33:23 (6 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GeneralizedQAP/HeuristicLab.Optimization/3.3/Algorithms/HeuristicOptimizationAlgorithm.cs
r14185 r15603 21 21 22 22 using System; 23 using System.Threading; 23 24 using HeuristicLab.Common; 24 25 using HeuristicLab.Core; … … 37 38 } 38 39 39 protected HeuristicOptimizationAlgorithm() : base() { } 40 protected HeuristicOptimizationAlgorithm(string name) : base(name) { } 41 protected HeuristicOptimizationAlgorithm(string name, ParameterCollection parameters) : base(name, parameters) { } 42 protected HeuristicOptimizationAlgorithm(string name, string description) : base(name, description) { } 43 protected HeuristicOptimizationAlgorithm(string name, string description, ParameterCollection parameters) : base(name, description, parameters) { } 40 [Storable] 41 private TimeSpan executionTime; 42 private DateTime startDate; 43 public override TimeSpan ExecutionTime { 44 get { return executionTime + (ExecutionState == ExecutionState.Started ? DateTime.UtcNow - startDate : TimeSpan.Zero); } 45 } 46 47 protected HeuristicOptimizationAlgorithm() : base() { 48 executionTime = TimeSpan.Zero; 49 } 50 protected HeuristicOptimizationAlgorithm(string name) : base(name) { 51 executionTime = TimeSpan.Zero; 52 } 53 protected HeuristicOptimizationAlgorithm(string name, ParameterCollection parameters) : base(name, parameters) { 54 executionTime = TimeSpan.Zero; 55 } 56 protected HeuristicOptimizationAlgorithm(string name, string description) : base(name, description) { 57 executionTime = TimeSpan.Zero; 58 } 59 protected HeuristicOptimizationAlgorithm(string name, string description, ParameterCollection parameters) : base(name, description, parameters) { 60 executionTime = TimeSpan.Zero; 61 } 44 62 45 63 [StorableConstructor] 46 64 protected HeuristicOptimizationAlgorithm(bool deserializing) : base(deserializing) { } 47 protected HeuristicOptimizationAlgorithm(HeuristicOptimizationAlgorithm original, Cloner cloner) : base(original, cloner) { } 65 protected HeuristicOptimizationAlgorithm(HeuristicOptimizationAlgorithm original, Cloner cloner) 66 : base(original, cloner) { 67 executionTime = original.executionTime; 68 } 69 70 public override void Prepare() { 71 executionTime = TimeSpan.Zero; 72 base.Prepare(); 73 } 74 75 public override void Start(CancellationToken cancellationToken) { 76 startDate = DateTime.UtcNow; 77 base.Start(cancellationToken); 78 } 48 79 49 80 #region Events … … 62 93 protected virtual void Problem_EvaluatorChanged(object sender, EventArgs e) { } 63 94 #endregion 95 96 protected override void OnPaused() { 97 var elapsed = DateTime.UtcNow - startDate; 98 executionTime += elapsed; 99 base.OnPaused(); 100 } 101 102 protected override void OnStopped() { 103 if (ExecutionState == ExecutionState.Started) { 104 var elapsed = DateTime.UtcNow - startDate; 105 executionTime += elapsed; 106 } 107 base.OnStopped(); 108 } 64 109 } 65 110 }
Note: See TracChangeset
for help on using the changeset viewer.