我的Android应用程序运行缓慢。像导航这样的操作,特别是非常慢。我用下面的代码使用计时器。现在我想点击按钮时停止计时器?怎么做
void ChangedData()
{
Task.Delay(500).ContinueWith(t =>
{
ChangedData();
}, TaskScheduler.FromCurrentSynchronizationContext());
}
答案 0 :(得分:1)
using System.Timers;
Timer timer = new Timer(500);
timer.Elapsed += (sender, e) => { ChangedData(); };
timer.Start();
// to stop the Timer
timer.Stop();
答案 1 :(得分:0)
在代码中的某处创建一个CancellationTokenSource。
var _cts = new System.Threading.CancellationTokenSource();
然后在方法中使用CancellationToken调用Task.Delay调用。
Task.Delay(500, _cts.Token)
要取消任务,只需调用CancellationTokenSource的取消方法
_cts.Cancel();
当任务被取消时,它将抛出TaskCanceledException。请记得抓住异常。
try
{
Task.Delay(500, _cts.Token).ContinueWith(t =>
{
ChangedData();
}, TaskScheduler.FromCurrentSynchronizationContext());
}
catch (TaskCanceledException ex)
{
// Handle when task is cancelled.
}