Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
languagec#
themeEmacs
linenumberstrue
            var target = actorSystem.ActorOf<MailBoxActor>("inboxactor");
            var inbox = Inbox.Create(actorSystem);            

            try
            {
                ///// Sample 1 : 특정 메시지를 받는지 여부
                inbox.Send(target, "hello");
                bool result = inbox.Receive(TimeSpan.FromSeconds(1)).Equals("world");
                Console.WriteLine("result:" + result);

                //// Sample 2 : 관리대상 target이 종료되는지 여부...
                inbox.Watch(target);    //해당 액터를 inbox에서 감시
                target.Tell(PoisonPill.Instance, ActorRefs.NoSender);
                if( inbox.Receive(TimeSpan.FromSeconds(1)) is Terminated)
                {
                    Console.WriteLine("target 종료됨..");
                }                

            }
            catch (TimeoutException)
            {
                Console.WriteLine("TimeOut");
            }

이경우 Inbox 를 사용하여, 외부에서 복수의  복수의 Actor의 요청결과를 묶어낼수 있습니다.