我需要一些线程与VB.NET 2010应用程序中的URL请求同时工作。一旦其中一个完成,它应该继续列表中的下一个任务。
我是新手使用线程。因为我似乎无法声明BackgroundWorker
的数组,所以我认为我有一个控件类,它为每个任务创建一个任务类的实例,然后启动BackgroundWorker
它的构造函数。
但是,通过这种方法,我不确定如何在完成时将结果报告给控件类。我有这个模糊的想法,我可以发送对控件类中的对象的引用(或者我可以触发的公共事件,这可能吗?),但是然后我必须以某种方式存储该地址,直到工作完成。而且我不知道如何存储ByRef中的地址以备将来使用。
我基本上想知道的是:实现这一目标的标准模式是什么,我应该如何思考,任何人都可以指出一个例子? 谢谢!
答案 0 :(得分:2)
因为我似乎无法声明
的数组BackgroundWorker
你可以。在你的情况下,它看起来你绝对应该,因为BackgroundWorker
提供了你需要的功能。
只需在代码中声明worker,而不是通过Forms Designer:Forms Designer不支持控件/组件数组。但在代码中,不存在这样的限制。唯一的问题是你不能将lists / arrays / ...声明为WithEvents
。您需要使用AddHandler
and RemoveHandler
在所有实例上手动注册和取消注册事件处理程序。