- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试运行此代码:
GetRepsButton.Command = new Command(async () =>
{
var url = @"https://url";
HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
//crashes here
var test = await client.GetStringAsync(url);
});
当我这样做时,整个应用程序崩溃并且输出窗口显示此错误:
ROR: +[MSWrapperLogger MSWrapperLog:tag:level:]/7 Unhandled Exception:
UIKit.UIKitThreadAccessException: UIKit Consistency error: you are calling a UIKit method that can only be invoked from the UI thread.
at UIKit.UIApplication.EnsureUIThread () [0x00020] in /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/UIKit/UIApplication.cs:89
at UIKit.UIGestureRecognizer.RemoveTarget (Foundation.NSObject target, System.IntPtr action) [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/UIKit/UIGestureRecognizer.g.cs:342
at UIKit.UIGestureRecognizer.OnDispose () [0x00016] in /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/UIKit/UIGestureRecognizer.cs:41
at UIKit.UIGestureRecognizer.Dispose (System.Boolean disposing) [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/UIKit/UIGestureRecognizer.g.cs:959
at
Foundation.NSObject.Finalize () [0x00000] in /Library/Frameworks/Xamarin.iOS.framework/Versions/12.6.0.16/src/Xamarin.iOS/Foundation/NSObject2.cs:143
Resolved pending breakpoint at 'SelectRep.xaml.cs:110,1' to void NameSpace.<ClientPicker_SelectedIndexChanged1>d__3.MoveNext () [0x0000c].
虽然我认为我不应该这样做,因为我没有对 UI 做任何事情,但我尝试过 InvokeOnMainThread
,但它不起作用。我还尝试更改为 .Result 而不是等待,并且尝试了 GetAsync
并读取内容,并使用 WebClient
而不是 HttpClient
.所有这些都会导致同样的错误。
有什么想法吗?我正在使用 Xamarin forms 4 pre 7。
最佳答案
使用Device.BeginInvokeOnMainThread
Device.BeginInvokeOnMainThread(() =>
{
//your code
});
关于xamarin - UIKit.UIKitThreadAccessException : UIKit Consistency error: you are calling a UIKit method that can only be invoked from the UI thread,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55423904/
我只在 MonoTouch 5.4 中遇到这个问题。 DrawMapRect是多线程的,但是我这里需要用到RectForMapRect。我可以不使用 InvokeOnMainThread 吗? 错误:
我正在尝试运行此代码: GetRepsButton.Command = new Command(async () => { var url =
我正在尝试运行此代码: GetRepsButton.Command = new Command(async () => { var url =
我是一名优秀的程序员,十分优秀!