我正在构建两个在同一个数据库上工作的应用程序。我的问题是我想创建一个自动更新。
细节 :
我有一个农场,在主要表格上我显示了一些数据(例如药物清单)。我有另一个应用程序允许我添加/编辑/删除药物。
我希望第一个应用程序不时更新(1-2 秒)。
我尝试在主应用程序中创建另一个线程并以 2 秒的睡眠时间调用它,但它冻结了应用程序,我不希望这样。我希望应用程序(两者)都能正常运行并以某种方式进行后台更新。
想法?
BackgroundWorker将允许您执行此操作。
如果您使用 的实例System.Threading.Timer
每 X 秒更新一次显示,则可以依靠 tick 回调在后台线程上。这将防止显示冻结。
请记住,您只能访问更新它们的线程上的控件。如果需要访问工作线程上的控件,可以使用 InvokeRequired/Invoke 模式(在 WinForms 中)。
看看Async CTP。它将帮助您在后台做一些事情并稍后更新您的视图(表单)。