如何在Zebble for Xamarin的后台进程中从服务器获取日期和时间?

时间:2017-05-10 18:43:53

标签: c# xamarin xamarin.android xamarin-zebble zebble

我希望在后台进程上获取一些数据,如日期和时间,并在不阻止UI过程的情况下更新UI,我尝试使用此代码执行此操作:

var dateTime = await Api.Get<DateTime>("api/getNow");
MyTextView.Text = dateTime;

但是这段代码阻止了用户界面,我需要每30分钟获取一次数据,因此我添加了我在Xamarin中找到的代码:

TimerCallback timerDelegate = new TimerCallback(CheckStatus);

Timer timer = new Timer(timerDelegate, s, 30000, 30000);

但在Zebble中Timer没有定义4个参数。

1 个答案:

答案 0 :(得分:0)

要在UI上运行某些代码,您可以使用以下代码:

Device.UIThread.Invoke(()=>{    //UI code   });

要在后台进程上运行一些代码,并且当UI正在处理另一个进程时你需要做一些事情,你可以使用如下的ThreadPool:

Device.ThreadPool.Invoke(()=>{ //Background Code });

之后,如果您想在一段时间内运行一些代码,可以使用Timer in Thread命名空间,如下所示:

var s = new TimerExampleState();
var timerDelegate = new TimerCallback(() =>
{
     //Your code
});
var timer = new Timer(timerDelegate, s, 1000, 1000);

有关详细信息,请参阅以下链接: http://zebble.net/docs/understanding-zebble-threading

免责声明:我是Zebble项目的贡献者并从事技术支持。