【发布时间】:2017-02-11 20:07:09
【问题描述】:
前几天,在一次代码审查中,我看到了一些关于从工作线程设置属性的安全性问题。一位同事评论说:“此属性绑定到 UI,并且数据绑定是线程安全的。”
我使用 XF 已经有一段时间了,但一直认为这不是真的:如果我想更新绑定到 UI 的 ViewModel 属性,我必须在 UI 线程上进行这些更改。我只是花了几分钟浏览文档,除了直接操作 BindableProperties 具有线程亲和力之外,我没有看到明显的答案。这对我来说是否是阻塞的 UI 线程执行也很重要。
我可以自己做一个项目来测试它,但这类问题似乎总是间歇性的,所以我想知道我只是缺少正确的文档。
(这与调查主要发生在 Xamarin 调用堆栈中的崩溃有关。我们从工作线程引发事件,VM 处理该事件并更新一些属性。如果这是为 UI 线程安排的,可能有一些我们没有准备好的交错问题,我离解决崩溃问题更近了。如果它没有被安排在 UI 线程中......我很惊讶它工作了这么长时间。)
【问题讨论】:
标签: mvvm xamarin.forms