2013-11-22 104 views
4

最近我一直在試驗無狀態(C#中的HSM)(https://code.google.com/p/stateless/),我遇到了一些我不太確定如何實現的東西。無狀態自動推進狀態機

比方說,我有以下狀態:

  • 開始。

  • 連接

  • 完成

我想要實現的是:在建立TCP連接(在連接狀態)時,前進到閱讀狀態。或者,如果失敗,則進入完成狀態(可能會返回到連接狀態並在超時後嘗試新連接)。

如何使用Stateless實現此自動前進功能,因爲從狀態中觸發觸發器會導致堆棧溢出異常?

乾杯

回答

5

鑑於我發現關於無國籍沒有本地的解決方案做我問,我結束了在任務

Task.Start(() => _stateMachine.Fire(trigger)); 

這樣做包裹.Fire(觸發),指狀態機不會按照說法自動前進,但是它是由外部源提高的,從而解決了SO異常。