跨线程错误读取表单控件

时间:2011-03-17 16:00:48

标签: vb.net

我正在学习VB.NET来自VB6和Java背景。

在我的应用中,我有一个功能可以验证表单上的字段。它所做的只是阅读它们,而不是更新。我搜索并查看了有关backgroundWorker类的信息,但所有示例都是关于更新字段的。

我理解线程的概念及其工作原理,但从未编写过我自己生成线程的代码。我总是让语言处理它。每次我想阅读或更新每个字段时,我都需要使用backgroundWorker写一个sub,这似乎是很多工作。我得到的几本书向您介绍了该语言,可以直接阅读或更新该领域。

除了编写代码之外我怎么知道正在运行的线程,比如我以前运行调试器以找出哪个变量在哪个线程上?

感谢。

2 个答案:

答案 0 :(得分:0)

Herehere是对BackgroundWorkerProcess的一些解读。我的建议,不要使用它,除非你必须,即只有你有一个漫长的运行过程,并希望

  • 让用户在该任务运行时切换屏幕。
  • 使用表单
  • 上的进度指示器

话虽如此,我觉得它在处理发票等情况下很有用。当我必须生成说4k发票时,当该任务正在运行时,我可以在表单上放置一个indacator。

我发现下面的书有助于“Visual Basic 2008 Recipes”解释几种线程的使用,包括BackGroundWorker

答案 1 :(得分:0)

后台工作人员为您做了很多工作。当然比自己管理线程和编组回调更容易。但是,我同意Saif ......除非有一些好处,否则做任何工作都没有意义。仅将其用于可能需要花费大量时间的流程。

希望你使用VS2010,因为它增加了一些线程功能。例如,使用“调试位置”工具栏选择感兴趣的线程。