你的位置:首页 > ASP.net教程

[ASP.net教程]一个利用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   }