一个利用Dataflow实现的Actor

       最近进行并发数据处理,学习到了 Actor模型,其中最简单的实现方式是一位大牛利用Dataflow实现的。

       大牛的方案:http://www.jayway.com/2013/11/15/an-actor-model-implementation-in-c-using-tpl-dataflow/。

       根据此方案,做了一点修改,做了一个抽象的类,代码如下:

   

 1     public abstract class NewActor<T>
 2     {
 3         private readonly ActionBlock<T> _action;
 4 
 5         protected NewActor()
 6         {
 7             _action = new ActionBlock<T>(T => Receive(T));   
 8         }
 9 
10         // 接收并处理消息
11         protected abstract void Receive(T message);
12 
13         public void Post(T message)
14         {
15             _action.Post(message);
16         }
17 
18         public void Shutdown()
19         {
20             _action.Complete();
21             _action.Completion.Wait();
22         }
23     }

 

你可能感兴趣的:(一个利用Dataflow实现的Actor)