public Controller(MessagingScheduler scheduler) { messaging = scheduler; messaging.CommandStatusChanged += Notify; background = new BackgroundThreadScheduler(messaging); views = new List <IView>(); }
public void TestBackgroundScheduler() { var scheduler = new SimpleScheduler(); var messagingScheduler = new MessagingScheduler(scheduler); messagingScheduler.CommandStatusChanged += (sender, args) => Console.WriteLine(args); var backgroundScheduler = new BackgroundThreadScheduler(messagingScheduler); var thread1 = new Task(() => { var guid = Guid.NewGuid(); foreach (var command in TaskFactory.Parse("Cmd1 Cmd2 Cmd3")) { backgroundScheduler.Execute(guid, command); } }); var thread2 = new Task(() => { var guid = Guid.NewGuid(); foreach (var command in TaskFactory.Parse("Cmd4 Cmd5 Cmd6")) { backgroundScheduler.Execute(guid, command); } }); thread1.Start(); thread2.Start(); thread1.Wait(); thread2.Wait(); Thread.Sleep(10000); }