none
Ejecución de múltiples BackgroundWorker RRS feed

  • Pregunta

  • He estado haciendo una aplicación de monitoreo de variables de PLC con base de datos y otras funciones y estoy ejecutando varios códigos en segundo plano con BackgroudWorker como envio de correo automático, chequeo de conexiones, alarmas etc. Pero mi duda es ¿Es necesario usar tanto el backgroundworker para estos propositos?
    lunes, 20 de enero de 2020 21:25

Respuestas

  • hola

    >>¿Es necesario usar tanto el backgroundworker para estos propositos?

    si quieres tener thread (hilos) realizando diferentes tareas entonce si

    Igual tambien depende de las librerias del PLC, algunas ya incluyen funcionalidad que recibe los datos lanzado thread para procesarlo

    No se por que puerto es que obtienes esta info, si es por red hay funcionalidad asincrona que podrias usar

    Si es por puerto COM serial podrias ver de usar

    SerialPort.DataReceived Evento

    alli menciona

    El evento DataReceived se genera en un subproceso secundario cuando se reciben datos del objeto SerialPort.
    Dado que este evento se genera en un subproceso secundario, y no en el subproceso principal, intentar modificar 
    algunos elementos del subproceso principal, como los elementos de la interfaz de usuario, 
    podría generar una excepción de subproceso
    como veras el procesamiento de la lectura se realiza en un thread separado, no necesitas crear otro con el BackgroudWorker

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 20 de enero de 2020 21:35

Todas las respuestas

  • hola

    >>¿Es necesario usar tanto el backgroundworker para estos propositos?

    si quieres tener thread (hilos) realizando diferentes tareas entonce si

    Igual tambien depende de las librerias del PLC, algunas ya incluyen funcionalidad que recibe los datos lanzado thread para procesarlo

    No se por que puerto es que obtienes esta info, si es por red hay funcionalidad asincrona que podrias usar

    Si es por puerto COM serial podrias ver de usar

    SerialPort.DataReceived Evento

    alli menciona

    El evento DataReceived se genera en un subproceso secundario cuando se reciben datos del objeto SerialPort.
    Dado que este evento se genera en un subproceso secundario, y no en el subproceso principal, intentar modificar 
    algunos elementos del subproceso principal, como los elementos de la interfaz de usuario, 
    podría generar una excepción de subproceso
    como veras el procesamiento de la lectura se realiza en un thread separado, no necesitas crear otro con el BackgroudWorker

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 20 de enero de 2020 21:35
  • Muchas gracias, tenia esa preocupación porque uno de los proyectos ya está trabajando así en planta
    martes, 21 de enero de 2020 15:51