2016-05-22 2 views
1

次のコードスニペットがありますがStatefulServiceサブクラスの内部IReliableDictionaryを作成するためのhereを提供:アクター内でIReliableDictionaryを作成するには?

var myDictionary = await this.StateManager. 
    GetOrAddAsync<IReliableDictionary<string, long>>("myDictionary"); 

私の質問は、類似したコードを書く方法についてしかしActorためです。

Task<T> GetOrAddStateAsync<T>(string stateName, T value, CancellationToken cancellationToken = default(CancellationToken)); 

問題は、私が利用可能IReliableDictionary実装を見つけることができません:2-番目のパラメータとして、Tの値をサポートしていIActorStateManagerの内側だけで次の宣言があります。正しいスニペットの外観はどうですか?

+0

最初のスニペットは信頼できるサービス用で、2番目のスニペットは信頼できる俳優の方法です。状態管理者は異なる種類のものです。 – Mikhail

+0

良い点、私はもっと 'Actor'関連の文脈で投稿を更新しました。実際に私の質問は、ActieのStateManagerに 'ReliableDictionary'を追加する方法です。 – MaGu

答えて

6

アクターが動作する方法(ターンベースのアクセスモデル、状態の複製/永続性など)のため、アクター状態でIReliableDictionaryを使用することは実際には意味がありません。信頼性の高いコレクションを使用してステートフルなサービスから得られるすべてのメリットを得ることができます。

+0

複数のアクター間で値の表を共有する必要がある場合はどうすればよいですか? - (つまり、特定の俳優ではなくサービスにグローバルに保存されるべきルックアップテーブルなど) - あなたの俳優をホストしているステートフルサービスから、信頼できる辞書へのハンドルを取得するにはどうすればよいですか? – BrainSlugs83

関連する問題