Exemple #1
0
        private static void MethodLock()
        {
            var account = new ClassAccount(100);
            var tasks   = new Task[10];

            for (int i = 0; i < tasks.Length; i++)
            {
                tasks[i] = Task.Run(() => RandomlyUpdate(account));
            }
            Task.WaitAll(tasks);
        }
Exemple #2
0
        static void RandomlyUpdate(ClassAccount account)
        {
            var rnd = new Random();

            for (int i = 0; i < 10; i++)
            {
                var  amount   = rnd.Next(1, 10);
                bool doCredit = rnd.NextDouble() < 0.5;
                if (doCredit)
                {
                    account.Credit(amount);
                }
                else
                {
                    account.Debit(amount);
                }
            }
        }