Siempre debe intentar usar un objeto compuesto con tipos concretos (usando un patrón de diseño compuesto) en lugar de una lista de tipos de objetos. ¿Quién recordaría qué diablos es cada uno de esos objetos? Piense en el mantenimiento de su código más adelante ... En su lugar, intente algo como esto:
Public (Class or Structure) MyPerson
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public int ZipCode { get; set; }
End Class
Y entonces:
Dim person as new MyPerson With { .FirstName = “Joe”,
.LastName = "Smith”,
...
}
backgroundWorker1.RunWorkerAsync(person)
y entonces:
private void backgroundWorker1_DoWork (object sender, DoWorkEventArgs e)
{
MyPerson person = e.Argument as MyPerson
string firstname = person.FirstName;
string lastname = person.LastName;
int zipcode = person.ZipCode;
}