系统Xamarin PCL缺少计时器

本文关键字:计时器 PCL Xamarin 系统 | 更新日期: 2023-09-27 18:00:27

我正在使用构建一个针对IOS Android和Windows Phone 8.1的Xamarin跨平台应用程序。净4.5.1。当我试图参考系统时。PCL项目中的计时器,它不存在。我该如何解决这个问题?

系统Xamarin PCL缺少计时器

您可以使用:Device。启动计时器

语法:

public static void StartTimer (TimeSpan interval, Func<bool> callback)

示例:每1秒递增一次

int number = 0;
Device.StartTimer(TimeSpan.FromSeconds(1),() => {
    number++;
    if(number <= 60) 
    {
        return true; //continue
    }
    return false ; //not continue
});

示例:等待5秒钟运行功能一次

Device.StartTimer(TimeSpan.FromSeconds(5),() => {
    DoSomething();
    return false ; //not continue
});

前几天我注意到了这一点。即使类在API文档系统中。线程。计时器类。。烦人的

无论如何,我创建了自己的Timer类,使用Task.Delay():

public class Timer
{
        private int _waitTime;
        public int WaitTime
        {
            get { return _waitTime; }
            set { _waitTime = value; }
        }
        private bool _isRunning;
        public bool IsRunning
        {
            get { return _isRunning; }
            set { _isRunning = value; }
        }
        public event EventHandler Elapsed;
        protected virtual void OnTimerElapsed()
        {
            if (Elapsed != null)
            {
                Elapsed(this, new EventArgs());
            }
        }
        public Timer(int waitTime)
        {
            WaitTime = waitTime;
        }
        public async Task Start()
        {
            int seconds = 0;
            IsRunning = true;
            while (IsRunning)
            {
                if (seconds != 0 && seconds % WaitTime == 0)
                {
                    OnTimerElapsed();
                }
                await Task.Delay(1000);
                seconds++;
            }
        }
        public void Stop()
        {
            IsRunning = false;
        }
}