注意:甚至在提出问题之前,我就找到了解决问题的方法,但我仍然想知道为什么它会这样。
我正在做一个普通的 xamarin.iOS 应用程序,使用async/await
, Mvvm
, ... 在技术方面没什么特别的。
我发现以下代码(使用 a method group
)不起作用:
ViewModel.PropertyChanged += (sender, e) => {
if (e.PropertyName != "MyProperty")
return;
InvokeOnMainThread (tableViewController.TableView.ReloadData);
};
如果我在 上设置断点InvokeOnMainThread
,我可以看到异常:
但是带有 a 的相同代码lambda expression
就可以了。
ViewModel.PropertyChanged += (sender, e) => {
if (e.PropertyName != "MyProperty")
return;
InvokeOnMainThread (() => tableViewController.TableView.ReloadData ());
};
我的一部分在怀疑一个错误,另一部分已经在责怪我的无知。有谁知道哪个部分是正确的?