/// <summary> /// Terminate the FSM. /// </summary> /// <param name="fsm">The FSM, which sould be terminated</param> // Terminate a specific fsm. this call is asynchronous. To wait on completion, // call the FSMs "Wait" method. public void TerminateFsm( Fsm fsm ) { if (Thread.CurrentThread.GetHashCode() == thread.GetHashCode()) { RemoveFsm(fsm); } else { TerminateFsmEvent ev = new TerminateFsmEvent(); PushEvent( ev, fsm ); } }
/// <summary> /// Terminate all FSMs which are running on this processor. /// </summary> public void TerminateAllFsm() { if (Thread.CurrentThread.GetHashCode() == thread.GetHashCode()) { RemoveAllFsms(); } else { TerminateFsmEvent ev = new TerminateFsmEvent(); PushEvent( ev, null ); } }