Ejemplo n.º 1
0
 public void TransferToCard(decimal amount, BankCard recipient)
 {
     lock (_sync)
     {
         _moneyAmount -= amount;
         recipient.ReceivePayment(amount);
     }
 }
Ejemplo n.º 2
0
        public void TransferToCard(decimal amount, BankCard recipient)
        {
            //bool lockTaken = false;

            //try
            //{
            //    Monitor.Enter(_sync, ref lockTaken);
            //    _moneyAmount -= amount;
            //    recipient.ReceivePayment(amount);
            //}
            //finally
            //{
            //    if (lockTaken)
            //        Monitor.Exit(_sync);
            //}

            //Monitor.Exit(_sync);

            using (_sync.Lock(TimeSpan.FromSeconds(3)))
            {
                _moneyAmount -= amount;
                recipient.ReceivePayment(amount);
            }
        }