- Timestamp:
- 10/05/11 21:55:55 (13 years ago)
- Location:
- branches/GeneralizedQAP
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/GeneralizedQAP
- Property svn:ignore
-
old new 1 *.docstates 2 *.psess 1 3 *.resharper 2 4 *.suo 5 *.vsp 3 6 Google.ProtocolBuffers-0.9.1.dll 7 HeuristicLab 3.3.5.1.ReSharper.user 8 HeuristicLab 3.3.6.0.ReSharper.user 4 9 HeuristicLab.4.5.resharper.user 5 10 HeuristicLab.resharper.user … … 8 13 _ReSharper.HeuristicLab 9 14 _ReSharper.HeuristicLab 3.3 15 _ReSharper.HeuristicLab.ExtLibs 16 bin 10 17 protoc.exe 11 HeuristicLab 3.3.5.1.ReSharper.user 12 *.psess 13 *.vsp 14 *.docstates 18 HeuristicLab.ExtLibs.6.0.ReSharper.user
-
- Property svn:mergeinfo changed
- Property svn:ignore
-
branches/GeneralizedQAP/HeuristicLab.Optimization/3.3
- Property svn:ignore
-
old new 4 4 *.user 5 5 *.vs10x 6 Plugin.cs
-
- Property svn:ignore
-
branches/GeneralizedQAP/HeuristicLab.Optimization/3.3/BatchRun.cs
r6534 r6878 147 147 } 148 148 149 private bool stopPending; 149 private bool batchRunStarted = false; 150 private bool batchRunPaused = false; 151 private bool batchRunStopped = false; 150 152 151 153 public BatchRun() … … 158 160 repetitionsCounter = 0; 159 161 Runs = new RunCollection(); 160 stopPending = false;161 162 } 162 163 public BatchRun(string name) … … 168 169 repetitionsCounter = 0; 169 170 Runs = new RunCollection(); 170 stopPending = false;171 171 } 172 172 public BatchRun(string name, string description) … … 177 177 repetitionsCounter = 0; 178 178 Runs = new RunCollection(); 179 stopPending = false;180 179 } 181 180 [StorableConstructor] 182 private BatchRun(bool deserializing) 183 : base(deserializing) { 184 stopPending = false; 185 } 181 private BatchRun(bool deserializing) : base(deserializing) { } 186 182 [StorableHook(HookType.AfterDeserialization)] 187 183 private void AfterDeserialization() { … … 197 193 repetitionsCounter = original.repetitionsCounter; 198 194 runs = cloner.Clone(original.runs); 199 stopPending = original.stopPending; 195 batchRunStarted = original.batchRunStarted; 196 batchRunPaused = original.batchRunPaused; 197 batchRunStopped = original.batchRunStopped; 200 198 Initialize(); 201 199 } … … 227 225 if ((ExecutionState != ExecutionState.Prepared) && (ExecutionState != ExecutionState.Paused)) 228 226 throw new InvalidOperationException(string.Format("Start not allowed in execution state \"{0}\".", ExecutionState)); 229 if (Optimizer != null) Optimizer.Start(); 227 if (Optimizer == null) return; 228 229 batchRunStarted = true; 230 batchRunPaused = false; 231 batchRunStopped = false; 232 if (Optimizer.ExecutionState == ExecutionState.Stopped) Optimizer.Prepare(); 233 Optimizer.Start(); 230 234 } 231 235 public void Pause() { 232 236 if (ExecutionState != ExecutionState.Started) 233 237 throw new InvalidOperationException(string.Format("Pause not allowed in execution state \"{0}\".", ExecutionState)); 234 if ((Optimizer != null) && (Optimizer.ExecutionState == ExecutionState.Started)) 235 Optimizer.Pause(); 238 if (Optimizer == null) return; 239 if (Optimizer.ExecutionState != ExecutionState.Started) return; 240 241 batchRunStarted = false; 242 batchRunPaused = true; 243 batchRunStopped = false; 244 Optimizer.Pause(); 236 245 } 237 246 public void Stop() { 238 247 if ((ExecutionState != ExecutionState.Started) && (ExecutionState != ExecutionState.Paused)) 239 248 throw new InvalidOperationException(string.Format("Stop not allowed in execution state \"{0}\".", ExecutionState)); 240 stopPending = true; 241 if ((Optimizer != null) && 242 ((Optimizer.ExecutionState == ExecutionState.Started) || (Optimizer.ExecutionState == ExecutionState.Paused))) 243 Optimizer.Stop(); 249 if (Optimizer == null) return; 250 if (Optimizer.ExecutionState != ExecutionState.Started && Optimizer.ExecutionState != ExecutionState.Paused) return; 251 batchRunStarted = false; 252 batchRunPaused = false; 253 batchRunStopped = true; 254 Optimizer.Stop(); 244 255 } 245 256 … … 324 335 } 325 336 private void Optimizer_Paused(object sender, EventArgs e) { 326 OnPaused(); 337 if (ExecutionState == ExecutionState.Started) { 338 batchRunStarted = false; 339 batchRunPaused = true; 340 batchRunStopped = false; 341 OnPaused(); 342 } 327 343 } 328 344 private void Optimizer_Prepared(object sender, EventArgs e) { 329 if ( (ExecutionState == ExecutionState.Paused) || (ExecutionState == ExecutionState.Stopped))345 if (ExecutionState == ExecutionState.Stopped || !batchRunStarted) { 330 346 OnPrepared(); 347 } 331 348 } 332 349 private void Optimizer_Started(object sender, EventArgs e) { 333 stopPending = false;334 350 if (ExecutionState != ExecutionState.Started) 335 351 OnStarted(); … … 338 354 repetitionsCounter++; 339 355 340 if (!stopPending && (repetitionsCounter < repetitions)) { 356 if (batchRunStopped) OnStopped(); 357 else if (repetitionsCounter >= repetitions) OnStopped(); 358 else if (batchRunPaused) OnPaused(); 359 else if (batchRunStarted) { 341 360 Optimizer.Prepare(); 342 361 Optimizer.Start(); 343 } else { 344 OnStopped(); 345 } 362 } else OnStopped(); 346 363 } 347 364 private void Optimizer_Runs_CollectionReset(object sender, CollectionItemsChangedEventArgs<IRun> e) {
Note: See TracChangeset
for help on using the changeset viewer.