Как правильно блокировать области кода

Что лучше:
чтобы в операторе блокировки была большая область кода
или
иметь маленькие замки на большой площади? ..
обмены в этом образце не подлежат изменению.

lock (padLock)
{
  foreach (string ex in exchanges)
  {
     sub.Add(x.ID, new Subscription(ch, queue.QueueName, true));
.........
}

или

foreach (string ex in exchanges)
{
  lock (padLock) 
  {
     sub.Add(x.ID, new Subscription(ch, queue.QueueName, true));
  }
.....
5
задан 0x49D1 27 December 2011 в 13:44
поделиться