2011-03-30 55 views
8

我一直在尋找通過Topshelf代碼,並注意它使用稱爲「stact.dll」的組件。目前似乎沒有很多關於這方面的信息。它似乎是一個使用actor和'channels'構建併發應用程序的庫。我發現Topshelf代碼有點難以遵循,但我有興趣瞭解更多關於這種編程風格的內容。有沒有人有這個圖書館的經驗?你是怎麼學習如何使用它的?入門stact框架

+1

此演員演員v.s. Erlang/Scala中的線程建模在概念上與Stact相關。也許這有助於給出一些背景。 http://ruben.savanne.be/articles/concurrency-in-erlang-scala這些都是Chris自己收集的參考資料http://blog.phatboyg.com/2011/11/26/references-on-the-actor -programming-model/ – enix 2012-02-15 17:42:20

回答

6

Stact目前只有真正在此刻內部使用。這是我們從編寫併發軟件的經驗中建立起來的,主要是Chris Patterson(https://github.com/phatboyg/Stact)的工作。

我能想到的最簡單的例子是在那裏從錢櫃。 https://github.com/Cashbox/Cashbox/blob/v1.0/src/Cashbox/Engines/FileStorageEngine.cs

你具有將消息傳遞的信道。在該頻道的一端,您設置了消息訂閱。第72行構建訂閱,爲其預期的每種消息類型設置處理程序操作。 HandleOnFiber(_fiber)強制所有消息在同一個線程上處理,並且在收到消息時排隊。還有其他的句柄調用,並希望API是相當可發現的。

現在這個例子中隱藏了所有的信道和纖維在一類,則可能必須連接在該情況下,以所討論的信道的基準就必須通過周圍不同類信道。

Stact實際上是一個Actor圖書館。目前沒有任何好的例子可以用它來寫演員。我希望這有幫助。

+0

謝謝特拉維斯。我會檢查錢箱的例子,並試着讓我的頭靠近它。 – 2011-03-31 01:28:43

+1

可能要還提到Retlang太:http://code.google.com/p/retlang/ – 2011-07-10 11:06:35

+1

實例鏈接已經死了 – 2013-06-24 18:54:43