【发布时间】:2023-03-17 11:45:01
【问题描述】:
我有办法
public async Task doSomething()
在方法里面我有代码:
ShowSpinner();
await System.Threading.Tasks.Task.Run(() =>
{
try
{
getValue = value();
}
catch(Exception ex)
{
}
finally
{
HideSpinner();
}
});
ShowSpinner() 和 HideSpinner() 只是简单的叠加层,以防止用户与屏幕交互并显示一个旋转的轮子来指示加载。
我收到错误:
UIKit 一致性错误:您正在调用的 UIKit 方法只能 从 UI 线程调用。
我知道这是因为HideSpinner()。我怎样才能解决这个一致性错误?
【问题讨论】:
-
重复的问题与 WPF 相关,而不是 Xamarin。相同的一般概念,不同的答案。在 Xamarin Forms 中,您需要使用 Device.BeginInvokeOnMainThread(),在 Xarmarin iOS 中,您将使用 InvokeOnMainThread() 来强制 UI 更新在 UI 线程上运行。
标签: c# asynchronous xamarin try-catch