【发布时间】:2012-04-22 17:32:39
【问题描述】:
我正在尝试从另一个线程访问 ListView 对象。我这样做的方式是为新线程创建一个临时 ListView,然后在填充新列表时每秒将这个临时 ListView 复制回原始列表。
我在复制 ListView 对象时遇到了困难。我环顾四周,找到了复制项目的方法,但我也需要列和结构也相同。
如果我只是这样做:
ListView lv_temp = lv_original
然后它通过引用复制它,我会得到更多的线程访问错误。
那么如何按值进行完整的克隆呢?
【问题讨论】:
-
别这样。仅在线程中创建数据。填充它,比如说,一个 List。仅在 UI 线程上填充 ListView。 BackgroundWorker 让它变得简单。
-
是的,@Hans 说的。必须使用适当的数据源。
-
这就是我所做的。我只想复制整个 ListView,因为结构已经存在。我刚刚创建了一个具有相同列的新结构,然后将其逐行复制到真实的结构中。