Device.StartTimer 等效于 xamarin 本机 PCL



我想在一定的延迟后调用一个方法。

在 Xamarin.Form Device.StartTimer 中可用。

Device.StartTimer(2000,() =>{});

同样,我们可以轻松地在xamarin本机中完成

System.Threading.Timer timerO = new System.Threading.Timer(this.methodtobeinvoked,”timerO", 2000, System.Threading.Timeout.Infinite);

但是当涉及到 Xamarin 本机的 PCL 时,我们不能同时使用两者。 好像

System.Threading.Tasks.Task.Delay(2000)是 PCL 中最简单的选项,但这个阻止了主线程,我可以创建一个线程并调用他延迟以将其从主线程中移除,但我不想陷入使用多线程的陷阱......是否有任何简单的解决方案可以让我们在时间流逝后调用方法。

每秒执行滴答声...

Device.StartTimer(TimeSpan.FromMilliseconds(1000), loop1); // every 1 second
bool loop1()
{
ticktock(); // execute every second
return true;
}

省略 return 语句,您将在延迟一秒后执行一次 ticktock。

最新更新