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

时间:2016-07-09 18:15:12

标签: c# android multithreading xamarin task

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

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

read_mic_task()async Task,其中我从麦克风中读取样本。我正在使用秒表测量一次和其他执行之间的时间,我可以看到任务以随机周期运行。我想定期执行这项任务,尽管经常搜索,我什么都没得到。你能帮忙吗?

提前致谢!

1 个答案:

答案 0 :(得分:0)

如果您还想跨系统线程计时器的平台共享它,有多种可能性。此计时器也可用于便携式课程。

您可以使用它,例如:

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
}