vb.net – llama al método RunWorkerAsync de un BackgroundWorker utilizando el nombre de bw como una variable
Tengo una aplicación que realiza muchas comprobaciones de tiempo y bucles a través de tablas de datos, comprobando ciertos valores en ciertos momentos, etc.
El resultado final es que tengo una lista (de cadenas) que contiene los nombres de los “calendarios” que deben ejecutarse en un momento determinado. Esos nombres corresponden a los nombres de un conjunto de trabajadores en segundo plano.
Me pregunto si hay alguna manera de recorrer esa lista y, utilizando el nombre del trabajador en segundo plano que es una variable de cadena, llamar al método RunWorkerAsync del trabajador en segundo plano correspondiente.
Los trabajadores en segundo plano ya están declarados antes de tiempo de ejecución y sus nombres son estáticos, coincidiendo con los nombres de la lista.
He estado mirando la función CallByName, pero no encuentro ningún ejemplo de uso de la documentación que la muestre utilizada de esta manera, así que no estoy seguro si estoy yendo por un camino sin salida allí.
Cualquier ayuda se aprecia de antemano.
davy.ai
Sí, puedes usar la función CallByName para llamar al método RunWorkerAsync del correspondiente trabajador en segundo plano.
La sintaxis para usar CallByName es:
En tu caso, lo harías de la siguiente manera:
Aquí,
backgroundWorkerDictionary
es un diccionario que asigna los nombres de los trabajadores en segundo plano (que son las claves en el diccionario) a los correspondientes objetos de trabajador en segundo plano.El parámetro
CallType
se establece en Method, ya que estás llamando a un método en el objeto de trabajador en segundo plano.Esta solución asume que los objetos de trabajador en segundo plano ya han sido instanciados y añadidos al diccionario antes de tiempo de ejecución, y que los nombres de los trabajadores en la lista coinciden con las claves en el diccionario.
¡Espero que esto ayude!