【发布时间】:2014-06-01 18:27:07
【问题描述】:
所以我有一个简单的 DataGridView,其中的行包含姓名、姓氏、状态。
现在我有另一个子正在启动 5 个线程。每个线程都会完成它的工作并根据其结果更新 DGV。
问题是我必须为 DGV 运行线程访问更新方法:
_namethread= New Thread(AddressOf namethread)
_namethread.IsBackground = True
_namethread.SetApartmentState(ApartmentState.STA)
使用 set STA,我最终没有错误,但 DGV 没有更新,也没有任何反应。看起来简单的更新方法调用正在跳过(在更新方法上我确实有 Application.DoEvents 以防万一)
还有另一件事。我想使用线程来更新数据库、刷新其他表的 DGV 等。
问题是我知道如何从线程访问文本框(通过委托方法),但我不知道如何通过 SQL 查询甚至 DHV 访问数据库来显示进度。
也许我应该使用事件提升器或其他东西。
你平时是怎么做的 :) ? 如果我要创建自定义事件是正确的,我可以从线程中调用它吗?
这个 DoEvents 是否像其他 subs 一样工作(所以它会逐步处理所有发生的事件,例如会更新数据库中的 6 条记录?)
类似于队列的东西?
我只需要知道我应该在哪个方向使用线程(就像我想对非常多线程的应用程序那样)
【问题讨论】:
-
我已经编辑了你的标题。请参阅“Should questions include “tags” in their titles?”,其中的共识是“不,他们不应该”。
标签: database multithreading datagridview