gpt4 book ai didi

wpf - 从单独的线程访问 ViewModel 属性

转载 作者:行者123 更新时间:2023-12-04 14:49:47 27 4
gpt4 key购买 nike

在我的 wpf 应用程序中,我的 View 模型中的一个耗时操作是使用单独的线程调用的。但是,此函数访问 View 模型中绑定(bind)到 View 中对象的多个属性。我尝试直接访问它们,但没有看到关于它们归 UI 线程所有的投诉。我有兴趣了解在线程之间直接使用它们的后果。

最佳答案

您可以在任何线程中自由使用您的 ViewModel - 包括阅读和写作。一个主要的异常(exception)是处理集合——数据绑定(bind)集合必须写入用户界面线程,因为绑定(bind)不会自动编码到 UI 线程(就像简单的绑定(bind)那样)。

但是,您仍然应该考虑为任何写入设置适当的同步。会出现正常的线程同步问题,因为 ViewModel 只是另一个类。

话虽如此,通常情况下,您希望处理同步的方式与在许多情况下略有不同。锁通常不适用于 ViewModel,因为 WPF 数据绑定(bind)不会锁定对象。因此,您通常应该使用 Dispatcher.Invoke/BeginInvoke当 ViewModel 需要同步时,根据需要编码回调到用户界面线程。

关于wpf - 从单独的线程访问 ViewModel 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8524257/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com