应用程序运行时,C#检查新的应用程序项目

时间:2011-02-25 22:15:10

标签: c# refresh auto-update windows

我有一个报告系统,其中包含可供用户运行的报告列表。我希望能够定期让应用程序在SQL服务器上查找新报告并重新填充可用报告列表。

但我想在不锁定应用程序的情况下这样做,我希望这是无缝的,并且让用户甚至不知道它正在发生。

我怎样才能以最有效的方式做到这一点?

谢谢

2 个答案:

答案 0 :(得分:2)

我建议使用后台线程进行轮询。您可以启动一个新的Thread对象并轮询服务器,在每次检查后休眠。如果您发现更改,则可以获取数据,然后您需要调用Invoke来更新GUI,因为这不能在不同的线程上完成。

另一种方法是使用计时器并在Tick事件中进行检查,但是如果检查需要很长时间(如果服务器繁忙或者存在表锁,则可能需要很长时间)会阻止你的申请,所以我建议不要这样做。

答案 1 :(得分:2)

如果我理解您的问题,您希望让后台线程执行此工作,而不会影响用户,并在完成后更新GUI。

查看BackgroundWorker帮助程序类。