Jav*_*den 8 datetime android sleep ios xamarin
我正在使用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.
}
Run Code Online (Sandbox Code Playgroud)
对于Java中的"Thread.sleep(2000)"来说,这似乎是一个丑陋的"黑客"
有没有更好的方法呢?
Xamarin Forms的多平台方式是
await Task.Delay(ms);
Run Code Online (Sandbox Code Playgroud)
编辑:
读完您确实要阻塞主线程之后,这里介绍了一种多线程阻塞线程的方法:
Task.Delay(ms).Wait()
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6318 次 |
| 最近记录: |