protected override bool Receive(object message)
 {
     if(message is Messages.Msg)
     {
         _received++;
         if(_sent < _repeat)
         {
             _actor.Tell(message);
             _sent++;
         }
         else if(_received >= _repeat)
         {
             //       Console.WriteLine("done {0}", Self.Path);
             _latch.SetResult(true);
         }
         return true;
     }
     if(message is Messages.Run)
     {
         var msg = new Messages.Msg();
         for(int i = 0; i < Math.Min(1000, _repeat); i++)
         {
             _actor.Tell(msg);
             _sent++;
         }
         return true;
     }
     if(message is Messages.Started)
     {
         Sender.Tell(message);
         return true;
     }
     return false;
 }
 public ClientReceiveActor(ActorRef actor, long repeat, TaskCompletionSource<bool> latch)
 {
     var received=0L;
     var sent=0L;
     Receive<Messages.Msg>(m =>
     {
         received++;
         if(sent < repeat)
         {
             actor.Tell(m);
             sent++;
         }
         else if(received >= repeat)
         {
             latch.SetResult(true);
         }
     });
     Receive<Messages.Run>(r =>
     {
         var msg = new Messages.Msg();
         for(int i = 0; i < Math.Min(1000, repeat); i++)
         {
             actor.Tell(msg);
             sent++;
         }
     });
     Receive<Messages.Started>(s => Sender.Tell(s));
 }