示例#1
0
 public Controller(MessagingScheduler scheduler)
 {
     messaging = scheduler;
     messaging.CommandStatusChanged += Notify;
     background = new BackgroundThreadScheduler(messaging);
     views      = new List <IView>();
 }
示例#2
0
        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);
        }