コード例 #1
0
        static void Main(string[] args)
        {
            try
            {
                LocalOperator singleThreadOperator           = new LocalOperator(new LocalSwitchboard(LocalConcurrencyType.OneThreadAllActors));
                AzureSmallMessageQueueOperator azureOperator = new AzureSmallMessageQueueOperator(null);

                Telegraph.Instance.MessageDispatchProcedure = MessageDispatchProcedureType.RoundRobin;
                long threadPoolOpID  = Telegraph.Instance.Register(singleThreadOperator);
                long azureOperatorID = Telegraph.Instance.Register(azureOperator); //NOTE: this sets the operator ID (singleThreadOperator.ID)

                Telegraph.Instance.Register <Ping>(threadPoolOpID, message => Telegraph.Instance.Tell(new Pong()));
                Telegraph.Instance.Register <Pong>(azureOperator);
            }
            catch (FailedRegistrationException ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Error.WriteLine(ex.GetType().ToString() + ":" + ex.Message);
                Console.ResetColor();
                return;
            }

            Console.WriteLine("Waiting For Ping ... press Enter to exit");
            Console.ReadLine();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            try
            {
                LocalOperator singleThreadOperator           = new LocalOperator(new LocalSwitchboard(LocalConcurrencyType.OneThreadAllActors));
                AzureSmallMessageQueueOperator azureOperator = new AzureSmallMessageQueueOperator(null);

                Telegraph.Instance.MessageDispatchProcedure = MessageDispatchProcedureType.RoundRobin;
                long threadPoolOpID  = Telegraph.Instance.Register(singleThreadOperator);
                long azureOperatorID = Telegraph.Instance.Register(azureOperator); //NOTE: this sets the operator ID (singleThreadOperator.ID)

                Telegraph.Instance.Register <Pong>(threadPoolOpID, message => Console.WriteLine(System.Environment.NewLine + message));
                Telegraph.Instance.Register <Ping>(azureOperator);
            }
            catch (FailedRegistrationException ex)
            {
                Console.ForegroundColor = ConsoleColor.Red;
                Console.Error.WriteLine(ex.GetType().ToString() + ":" + ex.Message);
                Console.ResetColor();
                return;
            }

            System.Threading.Thread.Sleep(1000); // wait for pong to become alive
            Task <IActorMessage> pingTask = Telegraph.Instance.Ask(new Ping());

            pingTask.Wait();
            Console.WriteLine("Ping Was Sent... press Enter to exit");
            Console.ReadLine();
        }