Пример #1
0
        private static void Main(string[] args)
        {
            //PricingHouse
            //Brokerage
            //Buyers
            //Sellers

            using (ActorSystem brokerage = ActorSystem.Create("Brokerage"))
            {
                ColorConsole.WriteLineGreen("Initialising Actor System");


                Props brokerActorProps = Props.Create <Broker>();
                Props playerActorProps = Props.Create <Buyer>();

                var iactorrefBuyer  = brokerage.ActorOf(props: playerActorProps, name: "Buyer");
                var iactorrefBroker = brokerage.ActorOf(props: brokerActorProps, name: "Broker");


                var resultCollection = new ConcurrentBag <int>();
                var iterations       = 10000;

                var result = Parallel.For(0, iterations, (i) =>
                {
                    var buyMessage = new BuyMessage()
                    {
                        sender = iactorrefBroker, Symbol = "MIC", Units = i
                    };

                    iactorrefBroker.Tell(buyMessage, iactorrefBuyer);
                    resultCollection.Add(i);
                });



                while (resultCollection.Count < iterations)
                {
                    Console.Write("z");
                }
                Console.ReadLine();

                brokerage.Shutdown();
            }
        }
Пример #2
0
        private static void Main(string[] args)
        {
            //PricingHouse
            //Brokerage
            //Buyers
            //Sellers

            using (ActorSystem brokerage = ActorSystem.Create("Brokerage"))
            {

                ColorConsole.WriteLineGreen("Initialising Actor System");

                Props brokerActorProps = Props.Create<Broker>();
                Props playerActorProps = Props.Create<Buyer>();

                var iactorrefBuyer = brokerage.ActorOf(props: playerActorProps, name: "Buyer");
                var iactorrefBroker = brokerage.ActorOf(props: brokerActorProps, name: "Broker");

                var resultCollection = new ConcurrentBag<int>();
                var iterations = 10000;

                var result =    Parallel.For(0, iterations, (i) =>
                {
                    var buyMessage = new BuyMessage() {sender = iactorrefBroker,Symbol = "MIC", Units = i};

                    iactorrefBroker.Tell(buyMessage, iactorrefBuyer);
                    resultCollection.Add(i);

                });

                while (resultCollection.Count <  iterations)
                {

                    Console.Write("z");
                }
                Console.ReadLine();

                brokerage.Shutdown();

            }
        }