/// <summary> /// Entry point into console application. /// </summary> static void Main() { LoadBalancer b1 = LoadBalancer.GetLoadBalancer(); LoadBalancer b2 = LoadBalancer.GetLoadBalancer(); LoadBalancer b3 = LoadBalancer.GetLoadBalancer(); LoadBalancer b4 = LoadBalancer.GetLoadBalancer(); // Check if it is the same instance? if (b1 == b2 && b2 == b3 && b3 == b4) { Console.WriteLine("Same instance"); } // Load balance 15 server requests LoadBalancer balancer = LoadBalancer.GetLoadBalancer(); for (int i = 0; i < 15; i++) { string server = balancer.Server; Console.WriteLine("Dispatch Request to: " + server); } }
static void TryLoadBalancer() { int numOfThreads = 2; WaitHandle[] waitHandles = new WaitHandle[numOfThreads]; for (int i = 0; i < numOfThreads; i++) { ThreadWithState tws = new ThreadWithState(i); Thread t = new Thread(new ThreadStart(tws.ThreadProc)); t.Start(); t.Join(); } LoadBalancer balancer = LoadBalancer.GetLoadBalancer(); for (int i = 0; i < 10; i++) { Server server = balancer.GetServer(); Console.WriteLine("Request assigns to " + server.Name); } }
public static void Run() { Console.WriteLine("\nSingleton Real World Practice"); LoadBalancer b1 = LoadBalancer.GetLoadBalancer(); LoadBalancer b2 = LoadBalancer.GetLoadBalancer(); LoadBalancer b3 = LoadBalancer.GetLoadBalancer(); LoadBalancer b4 = LoadBalancer.GetLoadBalancer(); if (b1 == b2 && b2 == b3 && b3 == b4) { Console.WriteLine("Same instance \n"); } LoadBalancer balancer = LoadBalancer.GetLoadBalancer(); for (int i = 0; i < 15; i++) { string server = balancer.Server; Console.WriteLine("Dispatch Request to: " + server); } }
static void Main(string[] args) { var b1 = LoadBalancer.GetLoadBalancer(); var b2 = LoadBalancer.GetLoadBalancer(); var b3 = LoadBalancer.GetLoadBalancer(); var b4 = LoadBalancer.GetLoadBalancer(); if (b1 == b2 && b2 == b3 && b3 == b4) { Console.WriteLine("Same instance\n"); } var balancer = LoadBalancer.GetLoadBalancer(); for (int i = 0; i < 15; i++) { string serverName = balancer.NextServer.Name; Console.WriteLine("Dispatch request to: " + serverName); } Console.ReadKey(); Console.ReadLine(); }
static void RunSingletonLoadBalancerExample() { Console.WriteLine("Welcome to real-world (Load Balancer) Singleton design pattern example.!"); LoadBalancer b1 = LoadBalancer.GetLoadBalancer(); LoadBalancer b2 = LoadBalancer.GetLoadBalancer(); LoadBalancer b3 = LoadBalancer.GetLoadBalancer(); LoadBalancer b4 = LoadBalancer.GetLoadBalancer(); // Same instance? if (b1 == b2 && b2 == b3 && b3 == b4) { Console.WriteLine("Same instance\n"); } // Load balance 15 server requests LoadBalancer balancer = LoadBalancer.GetLoadBalancer(); for (int i = 0; i < 15; i++) { string server = balancer.Server; Console.WriteLine("Dispatch Request to: " + server); } }
static void Main() { LoadBalancer b1 = LoadBalancer.GetLoadBalancer(); LoadBalancer b2 = LoadBalancer.GetLoadBalancer(); LoadBalancer b3 = LoadBalancer.GetLoadBalancer(); LoadBalancer b4 = LoadBalancer.GetLoadBalancer(); // Same instance? if (b1 == b2 && b2 == b3 && b3 == b4) { Console.WriteLine("Same instance\n"); } // Load balance 15 server requests LoadBalancer balancer = LoadBalancer.GetLoadBalancer(); for (int i = 0; i < 15; i++) { string server = balancer.Server; Console.WriteLine("Dispatch Request to: " + server); } var uc = new UnityContainer(); uc.RegisterType <Random>( new ContainerControlledLifetimeManager(), new InjectionConstructor()); var svc = uc.Resolve <NewSingleton>(); var svc2 = uc.Resolve <NewSingleton>(); Console.WriteLine( ReferenceEquals(svc.Random, svc2.Random)); Console.ReadKey(); }