2012-12-25 48 views
0

我有一个程序以图表的形式显示一些信息。信息每个月都会更新,所以我需要每月检索一次信息。我如何在Silverlight中每月运行一次方法?

我想过有一个睡眠了一个月的时间的线程,但是,我不知道这是否可行。有人可以提出一个更好的方法来做到这一点?

谢谢!

回答

2

您可以将上次访问的日期存储在文件/表中,然后在程序启动时每天轮询文件/表。如果超过1个月(30/31天),请重新获取您的数据。

在.NET中使用DateTime类来帮助您。在两个日期之间还使用DateTime.Subtract()

+0

而不是文件/表,我可以只使用程序中的变量存储数据检索方法被调用的日期?然后比较这个变量,直到30天过去了? – rage

+0

@rage不要那样做。你永远不知道什么时候你的程序可以关闭 - 因此它是一个好主意,坚持临界值在文件/表 –

+0

哦,好的,谢谢你的建议,我会尝试这个,当我有机会。 – rage

0

我在想你在这里做什么。这听起来很奇怪。

那么,信息从哪里来?数据库?如果是这样,你可以计算正常拉数据时的月份值吗?或者您可以在SQL Agent中运行一项作业,每月使用计算值更新一个表格。

真的可以用windows来设置一个具有类似概念的计划任务。它每月运行一次并下载新数据。

但基本上你正在试图做可以帮助我们给你更好的答案是什么一点点更多信息..

+0

我正在运行查询以从数据库中获取信息。然后我拉动结果并将它们绘制到条形图上。数据库中的内容会定期更改(与客户相关的数据),并且我希望我的图表每个月都能更新,而无需再次实际运行该程序。 该程序产生的图表将在电视显示器上供其他人使用soooo这将是很好,我可以自动执行此任务。 – rage

+0

那么人们是否会每周24小时都要将电视机调整到这个条形图中,以便他们每月可以看到更新一次?或者是计算机发送此馈送只是偶尔拉动条形图? – CodeRedick

+0

电视将循环不同的图表,我只是在其中之一。但是,图表将在电视的24/7上。所以我的图表可能会上升10-12秒,然后是下一个图表,然后是下一个图表等等,直到老板确定电视机的不同用途。 – rage

0

,其中在启动一个线程开始计算的时间,直到下一次读我见过的实现时间。在线程内,它等待一个关闭事件发出信号(由应用程序触发),超时值是以前计算的时间。一旦等待完成,如果不是由于关机事件造成的,则读取数据。

但是,我看到的更常见的实现是使用计划任务将数据加载到应用程序。虽然这将需要比线程版本更长的时间来实现,但它应该提供更强大的解决方案。