【发布时间】:2010-01-28 21:05:34
【问题描述】:
假设我有两个用户控件,UC1 和 UC2。用户在 UC1 中选择了一些东西,这需要一些时间,因此进程被线程化了。当 UC1 完成时,UC2 需要更新它的视图并在另一个线程上做一些自己的工作。但是 UC2 依赖于 UC1 后台线程的输出,因此它必须等到该线程完成后才能开始。
UC1 需要更新 ObservableCollection 以在其后台线程完成时更新其视图,就像 UC1 一样,异步。
最好的方法是什么?我已经尝试将它们关闭并从 UC1 的线程中触发一条消息,但随后 UC2 无法修改其 ObservableCollection,因为它不在正确的线程上 - 它认为它在 UC1 的线程上。
我需要将消息事件从 UC1 编组到 UC2,这样安全吗?
人们通常如何处理这个问题?
【问题讨论】:
标签: c# wpf multithreading