我有一个应用程序,它有一个主UI和两个无模式窗口,它们在自己独立的线程上运行。当一个对象从线程传递给线程时,我只是复制一个在辅助线程上的主线程上运行的对象。 当我想更新对象本身并让更改通过代码和辅助线程延续下去时如何实现?辅助线程始终保留旧对象的副本除非线程被杀死或停止然后再次生成,否则永远不会更新。
答案 0 :(得分:0)
有很多方法可以解决这个问题。一个是对象的存储库的线程安全共享实例。当一个线程更新它时,其他线程将获得更新的副本。你可以使用WCF来简化这一过程。有关一些想法,请参阅this article on WCF and concurrency。这是@Eric J对您的问题的评论的实现。
另一种方法是通过事件协调线程。当一个线程更新对象时,会向其他线程发送一个事件。如果对象不经常改变,那就足够了。
This question讨论了第三种可能性:BackgroundWorker
。