如果让我说我有
,那没关系BackgroundWoker1
BackgroundWoker2
他们两人都有:
AddHandler BackgroundWoker1.DoWork, AddressOf requestDataTravelPackagesName
AddHandler BackgroundWoker1.ProgressChanged, AddressOf showLoadingAnim
和另一行(时间使用不同)
AddHandler BackgroundWoker2.DoWork, AddressOf requestDataTravelPackagesName
AddHandler BackgroundWoker2.ProgressChanged, AddressOf showLoadingAnim
这是允许的吗?因为我尝试了类似的东西,看来我的表格出现故障。 但它并没有给我任何错误/信息。框架(GUI)刚刚消失。
我想也许这是因为我拥有多名背景工作者。可能他们正在访问相同的变量(在完成的函数中)或类似的函数/等
答案 0 :(得分:1)
原则上你的建议完全没有问题。如果出现问题,那么您的实施就会出现问题。
DoWork事件处理程序只是一个在辅助线程上执行的方法。在同一时间在多个线程上执行相同的方法是非常常见的,并且没有问题。 ProgressChanged事件处理程序在UI线程上执行,因此您无论如何都不会一次执行多个实例。
与所有多线程场景一样,您始终需要确保同步对公共数据的访问。还必须考虑单线程代码可能出现的所有问题,以及可能的跨线程访问控制以避免。
要了解您的具体案例中存在的问题,我们需要确切了解您的具体情况会发生什么。