8

Topshelf コードを調べたところ、「stact.dll」というアセンブリが使用されていることがわかりました。これについてはあまり情報がないようです。アクターと「チャネル」を使って並行アプリケーションを構築するためのライブラリのようです。Topshelf のコードを理解するのは少し難しいと思いますが、このスタイルのプログラミングについてもっと知りたいと思っています。このライブラリを使用した経験のある人はいますか? 使い方の勉強はどうしましたか?

4

1 に答える 1

6

Stact は現在、実際には内部でのみ使用されています。これは、並行ソフトウェアを書いた経験と、主に Chris Patterson ( https://github.com/phatboyg/Stact )の仕事から構築したものです。

私が考えることができる最も単純な例は、Cashbox のものです。 https://github.com/Cashbox/Cashbox/blob/v1.0/src/Cashbox/Engines/FileStorageEngine.cs

メッセージを渡すチャネルがあります。そのチャネルの一方の端で、メッセージ サブスクリプションをセットアップします。行 72 は、サブスクリプションを構築し、想定される各メッセージ タイプのハンドラー アクションを設定します。HandleOnFiber(_fiber) は、すべてのメッセージを強制的に同じスレッドで処理し、受信するとキューに入れます。他にもハンドル呼び出しがあり、できれば API が発見されやすいことを願っています。

この例では、1 つのクラス内のすべてのチャネルとファイバーを非表示にしています。異なるクラスを接続するチャネルがある場合、問題のチャネルへの参照を渡す必要があります。

Stact は実際には Actor ライブラリです。現時点では、それを使用してアクターを記述した優れた例はありません。これが役立つことを願っています。

于 2011-03-30T11:55:12.390 に答える