我想在我的xamarin表单移动应用程序上运行两个后台线程。
问题在于我希望以不同的频率调用这些任务。
要打电话给我,我这样做了:
protected override void OnStart()
{
// Handle when your app starts
// On start runs when your application launches from a closed state,
if (!stopWatch.IsRunning)
{
stopWatch.Start();
}
Device.StartTimer(new TimeSpan(0, 0, 1), () =>
{
if (stopWatch.IsRunning && stopWatch.Elapsed.Seconds == 20) //first task
{
MyMethod(this).ContinueWith((Task t) =>
{
stopWatch.Restart();
return true;
});
}
//second method?
// Always return true as to keep our device timer running, false if we want to cancel the timer.
return true;
});
}
这段代码运行良好。问题是我想调用第二个任务,但频率不同。我应该把它放在哪里?
答案 0 :(得分:0)
我只使用一个Timer,使用一个适用于它们的间隔,并使用计数器来查看要触发的内容。
例如,如果你有一个任务在20秒运行而另一个在30秒运行。将间隔设置为10秒。使用类级变量来保存计数并在第二个任务之后重置它。
intervalCount++;
if(intervalCount == 2)
{
// Do function 1
}
else if(intervalCount == 3)
{
// Do function 2 and reset our counter
intervalCount == 0;
}