gpt4 book ai didi

c# - InvokeOnMainThread 不适用于 `method group`

转载 作者:行者123 更新时间:2023-12-02 04:49:21 25 4
gpt4 key购买 nike

NOTE: I found a workaround to my problem even before asking the question, but I'm still wondering why it behave like this.

我正在做一个普通的 xamarin.iOS 应用程序,使用 async/awaitMvvm,...在技术方面没什么特别的。

我发现以下代码(使用方法组)不起作用:

ViewModel.PropertyChanged += (sender, e) => {
if (e.PropertyName != "MyProperty")
return;
InvokeOnMainThread (tableViewController.TableView.ReloadData);
};

如果我在 InvokeOnMainThread 上放置一个断点,我可以看到异常:

enter image description here

但是使用 lambda 表达式 的相同代码工作得很好。

ViewModel.PropertyChanged += (sender, e) => {
if (e.PropertyName != "MyProperty")
return;
InvokeOnMainThread (() => tableViewController.TableView.ReloadData ());
};

我的一部分在怀疑一个错误,另一部分已经在责备我的无知。谁知道哪一部分是对的?

最佳答案

如果你更仔细地观察你得到的异常,你会看到:

tableViewController.TableView   MonoTouch.UIKit.UIKitThreadAccessException [...]

问题是您正在后台线程上获取 TableView 属性(必须完成此操作才能创建 ReloadData 方法的委托(delegate))。

关于c# - InvokeOnMainThread 不适用于 `method group`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19155914/

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