如果我碰巧看过我的情况答案,我会提前道歉。
我正在使用后台工作程序在后台执行一些代码。这是我第一次使用后台工作人员而且我得到了不一致的结果。
使用断点,我能够找到后台工作人员停止工作的位置。
该行是:
RDFValues(I) = New Dictionary(Of String, String)
如果我在主线程中运行它,该线路工作正常,但它似乎阻止了后台工作者的轨道。
我的问题是为什么这一行导致后台工作者停止,而不是主线程?
我怀疑它与线程竞赛有关,但我并不完全确定。我甚至在使用此行调用sub的代码块中添加了Synclock
,因此我不知所措。
如果有人能帮助我,我将非常感激。 :)
我还应该注意,被调用的子元素存在于背景工作者工作之外的模块中。
答案 0 :(得分:0)
对于任何读过这个和我一样多的菜鸟的人来说,这就是我为解决问题而采取的措施。我正在使用来自我的UI的bindingsources来填充一些变量(这就是为什么sub在主线程上运行时工作的原因)我最终不得不放弃使用BS并使用程序化方法。我创建了一个返回DataTable的函数,然后使用DataRow对象来过滤结果。这很有效,我的后台工作人员现在完成了它的任务而没有错误。 :)祝你们其他人新手好运! :)