static void Main(string[] args) { FinalExam.Demo(); Publisher pub1 = new Publisher("publisher1", 2000); Publisher pub2 = new Publisher("publisher2", 1000); //Create Instances of Subscribers Subscriber sub1 = new Subscriber("Chaoyi"); Subscriber sub2 = new Subscriber("Peter"); Subscriber sub3 = new Subscriber("Jane"); //Pass the publisher obj to their Subscribe function sub1.Subscribe(pub2); //sub1 subscribes to publisher2 sub3.Subscribe(pub2); sub1.Subscribe(pub1); sub2.Subscribe(pub1); // Concurrently running multiple publishers thread for mocking continious notification update firing. Task task1 = Task.Factory.StartNew(() => pub1.Publish()); Task task2 = Task.Factory.StartNew(() => pub2.Publish()); Task.WaitAll(task1, task2); }
/* * 60 POINTS: */ public static void Demo() { Console.WriteLine($"\n\t FinalExam.Demo() version {Version} ..."); FinalExam obj = new FinalExam(); obj.UseStrings(); // 2 POINTS obj.UseObjectInitializer(); // 4 POINTS obj.ParseCSVString(); // 4 POINTS obj.SortIntegers(); // 2 POINTS obj.SortDoubles(); // 2 POINTS obj.SortStrings(); // 6 POINTS obj.SortItems(); // 10 POINTS obj.ProcessIntegers(); // 5 POINTS obj.ProcessDoubles(); // 5 POINTS obj.ProcessItems(); // 10 POINTS obj.UsePolymorphism(); // 10 POINTS Console.WriteLine("\n\t FinalExam.Demo()...done!"); }