У меня есть приложение multithreads, и я получаю эту ошибку
************** Exception Text **************
System.InvalidOperationException: Collection was modified; enumeration operation may not execute.
at System.ThrowHelper.ThrowInvalidOperationException(ExceptionResource resource)
at System.Collections.Generic.List`1.Enumerator.MoveNextRare()
at System.Collections.Generic.List`1.Enumerator.MoveNext()
...
У меня, вероятно, проблема с моей коллекцией, потому что в одном потоке я читаю свою коллекцию, а в другом потоке меня модифицирую коллекцию.
public readonly ObservableCollectionThreadSafe<GMapMarker> Markers = new ObservableCollectionThreadSafe<GMapMarker>();
public void problem()
{
foreach (GMapMarker m in Markers)
{
...
}
}
Я пытаюсь заблокировать сборку с помощью этого кода, но не работает.
public void problem()
{
lock(Markers)
{
foreach (GMapMarker m in Markers)
{
...
}
}
}
Любые идеи по устранению этой проблемы?