我试图让背景无限期地闪烁颜色。我有一些主要工作的东西,但我注意到闪烁之间的时间间隔非常不一致 - 有时非常快,有时则进展缓慢。
如果我不使用PeriodicTimer函数调用,背景会持续闪烁约1秒钟。但是,计时器在大约1.5-2分钟后到期,这不是我想要的。我想知道是否有更好的方法来实现这一点,而不是使用两个定时器。目前,我需要第二个计时器来确定切换颜色之间的时间延迟。
ThreadPoolTimer.CreatePeriodicTimer(elapsedHandle, TimeSpan.FromSeconds(1));
经过时间处理程序:
private void elapsedHandle(ThreadPoolTimer timer)
{
Timer flashTimer = new Timer(Callback, null, TimeSpan.FromSeconds(1), TimeSpan.FromSeconds(1));
}
回调功能:
private void Callback(object state)
{
Windows.ApplicationModel.Core.CoreApplication.MainView.CoreWindow.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,
() =>
{
// Your UI update code goes here!
if (backgroundColorFill.Visibility == Visibility.Collapsed)
{
backgroundWhiteFill.Visibility = Visibility.Collapsed;
backgroundColorFill.Visibility = Visibility.Visible;
}
else
{
backgroundColorFill.Visibility = Visibility.Collapsed;
backgroundWhiteFill.Visibility = Visibility.Visible;
}
//flightImage.Visibility = Visibility.Collapsed;
//iconImage.Visibility = Visibility.Visible;
}
);
}