c# – 没有链接到UI的UWP应用程序中的计时器
发布时间:2020-12-15 03:48:08 所属栏目:百科 来源:网络整理
导读:我正在研究一个UWP MVVM项目,并希望实现自动注销系统,如果用户交互停止一段特定的时间. 直到现在,我正在使用一个DispatcherTimer从每秒200次倒数. TimerLeave = 200;var _dispatcherTimer = new DispatcherTimer();_dispatcherTimer.Tick += dispatcherTimer
我正在研究一个UWP MVVM项目,并希望实现自动注销系统,如果用户交互停止一段特定的时间.
直到现在,我正在使用一个DispatcherTimer从每秒200次倒数. TimerLeave = 200; var _dispatcherTimer = new DispatcherTimer(); _dispatcherTimer.Tick += dispatcherTimer_Tick; _dispatcherTimer.Interval = new TimeSpan(0,1); _dispatcherTimer.Start(); 但是因为DispatcherTimer被链接 解决方法
是的 – 你可以使用
Timer class – 尽管你必须记住它运行在单独的线程上.例:
private Timer timer; public MainPage() { this.InitializeComponent(); timer = new Timer(timerCallback,null,(int)TimeSpan.FromMinutes(1).TotalMilliseconds,Timeout.Infinite); } private async void timerCallback(object state) { // do some work not connected with UI await Window.Current.CoreWindow.Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal,() => { // do some work on UI here; }); } 请注意,在UI调度程序上发送的工作可能不会马上处理 – 这取决于调度程序的工作负载. 还要记住,这个计时器与你的应用程序一起运行,并且在应用程序被暂停时不起作用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |