////////////////////////////////////////////////////////////////////////////////////////////////////
        /// \fn public void Run(bool activateFirstStep = true)
        ///
        /// \brief Runs the given activate first step.
        ///
        /// \brief #### Algorithm.
        ///
        /// \brief #### Usage Notes.
        ///
        /// \author Main
        /// \date 24/01/2017
        ///
        /// \param activateFirstStep (Optional) True to activate first step.
        ////////////////////////////////////////////////////////////////////////////////////////////////////

        public void Run(bool alreadyRunning = true, bool runFirstStep = true)
        {
            finishDetector = new TerminationDetectionAlgorithm();
            if (!alreadyRunning)
            {
                network.Activate(inDebugMode, runFirstStep);
                return;
            }
            else
            {
                string processesActivated = "";
                foreach (BaseProcess process in processesInStep)
                {
                    process.BreakpointEvent.Set();
                    processesActivated += process.ea[ne.eak.Id].ToString() + ',';
                }
                Logger.Log(Logger.LogMode.MainLogAndMessageTrace, "RunningHandler", "Run", "Processes activated " + processesActivated, "", "RunningHandler");
            }
        }