Один из моих элементов WPF связан со свойством, которое вызывает Count(Func)
для IEnumerable
. Свойство отображает что-то вроде количества активных объектов в системе (таким образом, требуется параметр Func
).
public int ActiveEntitiesCount
{
get
{
return Entities.Count((item) =>
{
//my own code, just a couple of value comparisons, very quick
});
}
}
.
Однако IEnumerable
- это список, который может быть изменен другим потоком в любое время. Иногда происходит сбой приложения, по-видимому, из-за изменения IEnumerable
во время выполнения перечисления функции Count
.
Я могу поставить блок try-catch
, но как получить значение, возвращаемое этим свойством?
Примечание: использование блокировки может быть непрактичным, потому что я не знаю всех кодов, которые обращаются к IEnumerable