xamarin原生PCL中的Device.StartTimer等效项

时间:2017-06-06 03:08:19

标签: xamarin timer task portable-class-library

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

在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中最简单的选项,但是这个可以阻止主线程,我可以创建一个线程并调用他延迟从主线程中取消它但我不想陷入陷阱使用多线程......是否有任何简单的解决方案可以让我们在时间过后调用一个方法。

1 个答案:

答案 0 :(得分:0)

每秒执行ticktock ......

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

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