2011-08-22 22 views
2

我需要一个线程在一个VB.NET 2010应用程序中同时处理URL请求。一旦其中一个完成,它应该继续列表中的下一个任务。如何在完成时向线程报告,VB.NET

我是新来的使用线程。由于看起来我无法声明一个BackgroundWorker的数组,我想我会有一个控制类为每个任务创建一个任务类的实例,然后在其构造函数中启动一个BackgroundWorker。 但是,使用这种方法我不确定如何在完成后将结果报告给控件类。我有这种模糊的想法,我可以发送一个对控件类中的对象的引用(或者我可以触发的公共事件,这是可能的吗?),但是我必须以某种方式存储这个地址,直到完成工作。而且我不知道如何从ByRef存储地址以备将来使用。

我基本上想知道的是:完成这个的标准模式是什么,我该怎么想,任何人都可以指向一个例子? 谢谢!

回答

2

因为好像我不能申报BackgroundWorker

数组您可以。在你的情况下,它看起来你绝对应该,因为BackgroundWorker提供了你需要的功能。

只需在代码中声明工作者,而不是通过窗体设计器:窗体设计器不支持控件/组件的数组。但在代码中,不存在这样的限制。唯一的问题是你不能将列表/数组/ ...声明为WithEvents。您需要在所有实例上手动注册和注销事件处理程序,使用AddHandler and RemoveHandler

+1

是的,它告诉我“'WithEvents'变量不能作为数组输入。”当我尝试。手动处理程序是我第一次做的另一件事,有趣!谢谢,正是我所需要的。 – Toerndev