iOS Xamarin计划计时器未启动
我们在一个Xamarin(不是Forms)项目中有一个调度器逻辑,它存在了相当长的一段时间并且曾经工作过。随着一次iOS升级(可能是很久以前),调度程序停止触发事件 为什么下面的计时器不是每20秒启动一次?应用程序处于活动状态,屏幕处于打开状态,我验证了初始化代码只运行一次iOS Xamarin计划计时器未启动,xamarin,xamarin.ios,Xamarin,Xamarin.ios,我们在一个Xamarin(不是Forms)项目中有一个调度器逻辑,它存在了相当长的一段时间并且曾经工作过。随着一次iOS升级(可能是很久以前),调度程序停止触发事件 为什么下面的计时器不是每20秒启动一次?应用程序处于活动状态,屏幕处于打开状态,我验证了初始化代码只运行一次 var interval = TimeSpan.FromSeconds(20); Timer = NSTimer.CreateRepeatingScheduledTimer(interval, HandleScheduled
var interval = TimeSpan.FromSeconds(20);
Timer = NSTimer.CreateRepeatingScheduledTimer(interval, HandleScheduledEventMethod);
// ...
public void HandleScheduledEventMethod(NSTimer timer)
{
// never executed, except for each call to Timer.Fire()
}
我按照Apple中的建议将其添加到nsrunlop中,但这也无济于事
NSRunLoop.Main.AddTimer(Timer, NSRunLoopMode.Common);
AddTimer
必须在主线程上调用,在后台线程上调用时它不起作用
DispatchQueue.MainQueue.DispatchQueue(() => {
Timer = NSTimer.CreateRepeatingScheduledTimer(interval, HandleScheduledEventMethod);
NSRunLoop.Main.AddTimer(Timer, NSRunLoopMode.Common);
})