Exemplo n.º 1
0
        public void T05()
        {
            RateManager rm = new RateManager();
            rm.InterestRate = 5;
            int newRate = 7;

            //replaces this in T03 ThreadPool.QueueUserWorkItem((e) => { rm.SetRate(r2); });
            Task<int> task = Task.Factory.StartNew<int>(() => { return rm.GetNewRate(newRate); });

            //This blocks (waits) until finished so you don't have to write a sleep
            Console.WriteLine("task.Result: " + task.Result + " ThreadID:" + Thread.CurrentThread.ManagedThreadId);

            Console.WriteLine("Interest Rate is: " + rm.InterestRate + " ThreadID:" + Thread.CurrentThread.ManagedThreadId);
        }
Exemplo n.º 2
0
        public void T04()
        {
            ShowThread("Main()");
            RateManager rm = new RateManager();
            rm.InterestRate = 5;
            int newRate = 7;

            //replaces this in T03 ThreadPool.QueueUserWorkItem((e) => { rm.SetRate(r2); });
            Task.Factory.StartNew(() => { rm.SetRate(newRate); });

            Thread.Sleep(300);  //give the bg thread time to set the new rate
            Console.WriteLine("Interest Rate is: " + rm.InterestRate + " ThreadID:" + Thread.CurrentThread.ManagedThreadId);
        }
Exemplo n.º 3
0
        public void T03()
        {
            ShowThread("Main()");
            RateManager rm = new RateManager();
            rm.InterestRate = 5;
            int r2 = 7;

            ThreadPool.QueueUserWorkItem((e) => { ShowThread("Threadpool "); rm.SetRate(r2); });

            Thread.Sleep(300);  //give the bg thread time to set the new rate
            Console.WriteLine("Interest Rate is: " + rm.InterestRate + " ThreadID:" + Thread.CurrentThread.ManagedThreadId);
        }
Exemplo n.º 4
0
        public void T02()
        {
            ShowThread("Main()");
            RateManager rm = new RateManager();
            rm.InterestRate = 5;

            BackgroundWorker bgw = new BackgroundWorker();

            bgw.DoWork += (s, e) =>
            {
                ShowThread("BGWorker");
                rm.InterestRate = 2;
            };

            bgw.RunWorkerCompleted += (s, e) => { ShowThread("RunWorkerCompleted"); };

            bgw.RunWorkerAsync();

            Thread.Sleep(300); //give the bg thread time to set the new rate
            Console.WriteLine("Interest Rate is: " + rm.InterestRate + " ThreadID:" + Thread.CurrentThread.ManagedThreadId);
        }
Exemplo n.º 5
0
 public void T01_A(RateManager a)
 {
     a.InterestRate = 5;
 }
Exemplo n.º 6
0
        public void T01()
        {
            ShowThread("Main()");
            RateManager rm = new RateManager();
            rm.InterestRate = 1;

            Thread t = new Thread(() => T01_A(rm));
            t.Start();
            t.Join();

            Console.WriteLine("Interest Rate is: " + rm.InterestRate + " ThreadID:" + Thread.CurrentThread.ManagedThreadId);
        }