Xamarin Android:C#定期任务(软实时)

本文关键字:实时 任务 Android Xamarin | 更新日期: 2023-09-27 17:56:05

我广泛地尝试搜索这个问题,但无法得出任何结论。我正在使用Xamarin和Visual Studio为C#语言的Android设计应用程序。该应用程序运行从设备麦克风读取样本的异步任务。到目前为止,无法控制此任务的时间。代码如下:

button.Click += async delegate
{
   //do some other stuff
   await read_mic_task();
}

read_mic_task()是我从麦克风读取样本的async Task。我正在使用秒表测量一次执行和另一次执行之间的时间,我可以看到任务以随机周期运行。我想定期执行这项任务,尽管搜索了很多,但我一无所获。你能帮忙吗?

提前感谢!

Xamarin Android:C#定期任务(软实时)

如果您还想跨平台共享它,有多种可能性,我会使用系统线程计时器。此计时器也可用于可移植类。

例如,您可以使用它:

private System.Threading.Timer _timer;
...
// setup timer with callback
_timer = new System.Threading.Timer(OnTimerTick);
// start timer: duetime = 0 when to first execute callback (0 = right now) and intervall 5s
_timer.Change(0, 5000);
...
// stop timer
_timer.Change(Timeout.Infinite, Timeout.Infinite);
...
private void OnTimerTick(object state)
{
    // do the intervall stuff here
}