我想在一定延迟后调用一个方法。
在Xamarin.Form Device.StartTimer可用。
Device.StartTimer(2000,() =>{});
同样,我们可以在xamarin native中轻松完成
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中最简单的选项,但是这个可以阻止主线程,我可以创建一个线程并调用他延迟从主线程中取消它但是我不想陷入使用多线程的陷阱...是否有任何可用的简单解决方案,让我们在经过一段时间后调用一个方法。
每秒执行ticktock ...
Device.StartTimer(TimeSpan.FromMilliseconds(1000), loop1); // every 1 second
bool loop1()
{
ticktock(); // execute every second
return true;
}
省略return语句,你会在一秒钟的延迟后执行一次ticktock。