private void AlgorithmManager_EventHandler(StackAlgorithmManager aAlgManager, StackAlgorithmManager.TEvent aEvent) { if (EventHandler != null) { switch (aEvent) { case StackAlgorithmManager.TEvent.EAlgorithmStarted: EventHandler(TEvent.EStackBuildingStarted, this); break; case StackAlgorithmManager.TEvent.EAlgorithmProgress: iProgress = aAlgManager.Progress; EventHandler(TEvent.EStackBuildingProgress, this); break; case StackAlgorithmManager.TEvent.EAlgorithmComplete: // Stop listening to algorithm manager events now that the reconstruction // process is complete. aAlgManager.EventHandler -= new StackAlgorithmManager.AlgorithmEventHandler(AlgorithmManager_EventHandler); aAlgManager.ExceptionHandler -= new StackAlgorithmManager.AlgorithmExceptionHandler(AlgorithmManager_ExceptionHandler); // Get rid of alg manager aAlgManager.Dispose(); // Report that we're done! EventHandler(TEvent.EStackBuildingComplete, this); break; } } }
private void AlgorithmManager_ExceptionHandler(StackAlgorithmManager aAlgManager, Exception aException) { if (ExceptionHandler != null) { ExceptionHandler(aException, this); } }
public void Reconstruct(TSynchronicity aSynchronicity) { StackAlgorithmManager algorithmManager = new StackAlgorithmManager(this); algorithmManager.EventHandler += new StackAlgorithmManager.AlgorithmEventHandler(AlgorithmManager_EventHandler); algorithmManager.ExceptionHandler += new StackAlgorithmManager.AlgorithmExceptionHandler(AlgorithmManager_ExceptionHandler); algorithmManager.Reconstruct(aSynchronicity); }