假设DataGridView将DataSource作为BindingList。某些后台线程可能都会从此列表中读取和写入。显然,如果DataGridView在后台线程枚举时修改了列表,则会出现问题(InvalidOperationException:collection已被修改)。 我能想到3个解决方案:
我认为2.导致过多的开销,并且没有一个可用的踏板安全集合像List / BindingList一样灵活。因此我倾向于方法1.如果我将所有列表访问放在lock (list.SyncRoot) { ... }
块中,那么它可以工作,但是我需要说服DataGridView也这样做。这可能吗?