关于backgroundworker的问题

wisejohn 2008-10-14 08:06:27
我在一个form下使用一下backgroundworker.用代理可以实现为本form中的treeview更新数据但是却不能为操作另一个form上的控件,请高手赐教!谢谢 !
...全文
91 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
wisejohn 2008-10-15
  • 打赏
  • 举报
回复
Private Sub bkWorker_DoWork(ByVal sender As System.Object, ByVal e As System.ComponentModel.DoWorkEventArgs) Handles bkWorker.DoWork
Dim bw As BackgroundWorker = CType(sender, BackgroundWorker)
Dim Status As Long = 1
While Status
If WaitForEvent(100) = 0 Then
tvwbeginUpdate() '代理函数
While Read(xxxx) = 0 '不断读取数据
frmNode.showNodeState(xxxx) '代理函数   显示数据 node窗体
displayData(xxxx) '代理函数   显示数据 data窗体
End While
tvwendUpdate()  '代理函数
End If
End While
If bw.CancellationPending Then
e.Cancel = True
End If
End Sub
现在问题是这样,如果这些代码放在放在data窗体下的的bkworker中则me.displaydata正常,而shownodestate不能显示,从调试的窗口中可以看出frmnode.shownodestate也已经进入。反之如果把这些代码放到node窗体下的bkworker中则me.shownodestate能正常显示,而displaydata不能,从调试的窗口中可以看出也已经进入。
请高手分析一下这是怎么一回事,谢谢。还有什么方法可以实现我想要的功能,谢谢。
Forrest23 2008-10-15
  • 打赏
  • 举报
回复
帮顶
只在此山中 2008-10-15
  • 打赏
  • 举报
回复
说得太简单了,贴代码

16,556

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧