如何在Xamarin android和ios中安装线程?

我正在使用Xamarin跨平台为iOS和 Android构建应用程序.我有一个名为“Core”的项目,然后一个用于iOS,一个用于Android.

在共享的“核心”项目中,我想显示一个加载动画,同时从设备中获取当前位置.我可以获取我的locationWatcher,启动它,并直接调用LocationWatcher.CurrentPosition,但由于它刚刚开始观察位置更新,它还没有时间获取任何位置.

我的解决方案是在启动后等待2秒然后获取位置.但是我不想等待异步,我想在等待时锁定UI.这是因为用户在当前位置已知之前不应该做任何事情.

我目前通过循环来实现这一目标:

DateTime startTime = DateTime.Now();
while ( (DateTime.Now() - startTime).TotalMilliseconds() < 2000) {
    //Locking the UI here,but it's what I want so it's ok.
}

这似乎是一个丑陋的“黑客”,在Java中只是“Thread.sleep(2000)”

有更好的方法吗?

解决方法

使用Xamarin Forms的多平台方式将是
await Task.Delay(ms);

编辑:

在阅读之后你真的想要阻止mainthread继承阻止线程的多平台方式:

Task.Delay(ms).Wait()

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...