public void TestFileFollowerwithEventAggregator() { var broker = new EventAggregator(new ChannelManager(), new ContextFactory()); var publisher = new EventPublisher(broker); var filefollower = new FileFollower(publisher); Guid identifier = Guid.Empty; var longrunningcontext = new PoolFiber(); longrunningcontext.Start(); //register with longrunning context. broker.AddListener<StartFollowingFileMessage>(longrunningcontext, filefollower.Handle); //register with normal context. broker.AddListener<StopFollowingFileMessage>(filefollower.Handle); var reset = new AutoResetEvent(false); broker.AddListener<FollowerStartedMessage>(message => { Console.WriteLine("Follower Started" + message.Identifier); identifier = message.Identifier; broker.SendMessage(new StopFollowingFileMessage(identifier)); }); broker.AddListener<FollowerStoppedMessage>(message => { if (message.Identifier == identifier) { Console.WriteLine("Follower stopped" + message.Identifier); reset.Set(); } }); publisher.SendMessage(new StartFollowingFileMessage(@"ExampleFiles/ExampleLogFiles/LotroLog.txt")); Assert.IsTrue(reset.WaitOne(5000, false)); }