Esempio n. 1
0
 public void TestActionActor()
 {
     TestLauncherActor.Test(
         () =>
     {
         ConcurrentQueue <string> queue = new ConcurrentQueue <string>();
         var act    = new ActionActor();
         var future = new Future <int>();
         act.SendAction(() =>
         {
             var tst = new ActionActor <string>();
             tst.SendAction((t) =>
             {
                 queue.Enqueue(t);
             }, "test1");
             tst.SendAction((t) =>
             {
                 queue.Enqueue(t);
             }, "test2");
             tst.SendAction((t) =>
             {
                 queue.Enqueue(t);
             }, "test3");
             tst.SendAction(() =>
             {
                 future.SendMessage(queue.Count);
             });
         });
         Assert.AreEqual(3, future.Result());
     }
         );
 }
Esempio n. 2
0
 public void TestActionActor2()
 {
     TestLauncherActor.Test(
         () =>
     {
         ConcurrentDictionary <int, string> dico = new ConcurrentDictionary <int, string>();
         var future = new Future <int, string>();
         var act    = new ActionActor();
         act.SendAction(() =>
         {
             var tst = new ActionActor <int, string>();
             tst.SendAction((i, t) => dico[i] = t, 1, "test1");
             tst.SendAction((i, t) => dico[i] = t, 2, "test2");
             tst.SendAction((i, t) => dico[i] = t, 3, "test3");
             tst.SendAction(() =>
             {
                 var s = string.Concat(dico.Values);
                 future.SendMessage(dico.Count, s);
             });
         });
         var result = future.Result();
         Assert.AreEqual(3, result.Item1);
         Assert.AreEqual("test1test2test3", result.Item2);
     }
         );
 }