我有一个报告系统,有一个可用于运行给用户的报告列表。 我希望能够做的是定期让应用程序在sql服务器上查找新的报告并重新填充可用的报告列表。
但是我想在不locking应用程序的情况下做到这一点,我希望这是无缝的,不让用户知道它正在发生。
我怎样才能做到这一点最有效的方式?
谢谢
Freepascal刷新标准输出在Windows下的每个输出?
如何刷新pipe道清理C中的缓冲区。 当两个pipe道是同一进程的一部分时
清除串口缓冲区
刷新控制台(不改变以前的输出)(c ++)
安全地卸载外部磁盘*不locking其卷
愚弄一个Windows程序,相信它正在运行输出未redirect
在Linux上closures()套接字的正确方法,Linux和Windows之间的区别?
如何从C程序在Linux中刷新cpucaching?
如果我理解你的问题,你正在寻找一个后台线程来执行这个工作,而不会影响用户,并在完成时更新GUI。
看看BackgroundWorker助手类。
我建议使用后台线程来进行轮询。 您可以启动一个新的Thread对象并轮询服务器,在每次检查之后进行休眠。 如果你发现一个变化,你可以获取数据,然后你需要调用Invoke来更新GUI,因为这不能在另一个线程上完成。
另一种方法是使用一个计时器并在Tick事件中进行检查,但是如果检查需要很长时间(如果服务器很忙或者有一个表锁)可能会花费很长时间应用程序,所以我建议不要这种方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。