【问题标题】:Using a visual c# backgroundworker to update database?使用可视化 c# backgroundworker 更新数据库?
【发布时间】:2012-06-27 07:56:32
【问题描述】:

这似乎应该很容易,但我找不到适合我正在寻找的解释。有谁知道在表单后台访问数据库并更新表单控件的方法?例如,我的可视 C# 应用程序正在从 MYSQL Web 服务器数据库加载一些文本框和标签。当有人更新网站数据库时,我希望更改能够自动反映在 C# 应用程序中。我尝试过使用计时器,但是当计时器关闭并检索数据时表单会锁定。 backgroundworker 控件看起来很有希望,但我似乎无法让它运行不止一次,甚至没有太多运气让它做我想做的事。在我的情况下,后台工作人员是要走的路吗?如果是这样,是否可以将其设置为每隔 30 秒左右不断地访问数据库?任何建议将不胜感激!

谢谢,

【问题讨论】:

    标签: c# mysql backgroundworker


    【解决方案1】:
    • 在窗体上启动一个完全独立的线程 (System.Threading.Thread) 加载并让它轮询数据库,将更改写入变量(使用 lock()) 并在发生更改时设置一个标志。
    • 在您的表单中使用计时器检查更改标志(例如每 250 毫秒),如果有,请将它们从变量复制到表单(再次使用 lock() 以避免撕裂)

    【讨论】:

    • 谢谢,这是有道理的。诚然,我来自线性程序语言 AS400/RPG,所以线程的概念对我来说还是有点新意。但我想我可以在谷歌周围搜索,根据你的信息找出它需要的工作方式。再次感谢!
    • msdn.microsoft.com/en-us/library/system.threading.thread.aspx 有一个很好的例子来说明如何启动一个后台线程。如果您需要更多帮助,请联系我。
    • 感谢您提供更多信息!我会开始思考这个问题。对于任何未来的观察者,我还发现这个站点如果您正在寻找结构示例更有意义。上面的链接非常适合查看线程的功能,这里的站点非常适合基本示例(尽管我还没有测试它们)。 msdn.microsoft.com/en-us/library/aa645740%28v=vs.71%29.aspx
    猜你喜欢
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-25
    • 1970-01-01
    • 2017-03-07
    • 2013-10-26
    • 1970-01-01
    相关资源
    最近更新 更多