有没有办法可以在Xamarin中取消正在运行的计时器?

时间:2016-11-27 05:47:24

标签: xamarin xamarin.forms

我的代码中有这个计时器:

            Device.StartTimer(TimeSpan.FromSeconds(100), () =>
            {
                Device.BeginInvokeOnMainThread(() =>
                {
                    if (detailGrid.IsVisible == true)
                    {
                        getRandomPhase();
                    }
                });
                return false;
            });

有没有办法可以(通过手势)取消计时器以某种方式运行或中止计时器?

1 个答案:

答案 0 :(得分:2)

Timer回调的返回值是一个布尔值,用于确定定时器是应该继续运行还是停止。您可以使用私有变量来跟踪计时器是否应继续运行并从回调中返回它。

请查看此示例

private bool _isTimerStart = true;  

           private void StartTimers()  
           {  
               try  
               {  
                   Device.StartTimer(new TimeSpan(0, 0, 1), () =>  
                   {  
                      // do some code here

                       return _isTimerStart;  
                   });  
               }  
               catch {}  
           }      private void BtnStart_OnClicked(object sender, EventArgs e)  
           {  
               _isTimerStart = true;  
               StartTimers();  
           }  

           private void BtnStop_OnClicked(object sender, EventArgs e)  
           {  
               _isTimerStart = false;  
           }

此代码取自以下博客文章,其中显示了更详细的示例:http://www.c-sharpcorner.com/article/quick-start-tutorial-creating-universal-apps-via-xamarin-device-classcont/