Ciclo de vida de NetLogic

Aprenda cómo
FactoryTalk Optix
gestiona los subprocesos de NetLogic, Start, Stop, la ejecución de ExportMethod y la ejecución de tareas para obtener un código fiable. Para ver ejemplos de código y un uso avanzado, consulte la FactoryTalk Optix NetLogic cheat sheet.

Contextos de ejecución y subprocesos

FactoryTalk Optix Runtime
incluye dos contextos de ejecución principales: el subproceso de la interfaz de usuario y el subproceso de comportamiento. El subproceso de la interfaz de usuario representa objetos gráficos y controla la entrada del usuario. El subproceso de comportamiento llama a los métodos
Start()
y
Stop()
en los comportamientos, incluido NetLogic, de forma secuencial. Estos subprocesos funcionan independientemente.
Para obtener más información sobre los grupos de tiempo de ejecución, los subprocesos dedicados y el comportamiento de despacho, consulte Modelo de subprocesos de tiempo de ejecución.

Ciclo de vida de los métodos Start y Stop

El tiempo de ejecución llama al método
Start()
cuando se activa un nodo (página, objeto, widget). El tiempo de ejecución llama a cada método
Start()
secuencialmente, uno cada vez, en el subproceso de comportamiento. Los nodos más profundos se inician antes que sus nodos primarios. Si varios NetLogics comparten la misma profundidad, su orden sigue el recorrido del árbol, pero esto no es determinista.
El tiempo de ejecución llama al método
Stop()
en el orden inverso exacto de
Start()
, secuencialmente en el subproceso de comportamiento. El tiempo de ejecución registra las excepciones en
Stop()
y no interrumpe la secuencia. Después de
Stop()
, el tiempo de ejecución elimina la instancia de NetLogic.
ADVERTENCIA: No agregue ni quite nodos del árbol de páginas en el método
Start()
de un NetLogic de tiempo de ejecución. Si necesita modificar el árbol dinámicamente, cambie la definición del tipo de página y cargue la página en la sesión.
CONSEJO: Si un método
Start()
tarda más de 2000 ms, el tiempo de ejecución registra una advertencia. Los métodos lentos
Start()
retrasan la inicialización posterior de NetLogic y pueden provocar bloqueos visibles durante la carga de la página. Durante la navegación por la página, el tiempo de ejecución puede llamar a
Stop()
en la página anterior después de llamar a
Start()
en la página nueva. Si las páginas comparten recursos globales o externos, esta superposición puede provocar un comportamiento inesperado.

Ejecución de ExportMethod y seguridad de subprocesos

Los métodos decorados con
[ExportMethod]
se ejecutan de forma sincrónica en el subproceso que los desencadena. El subproceso depende del origen del desencadenador: Subproceso de interfaz de usuario, subproceso de comportamiento o un subproceso de tarea dedicado. Cuando
[ExportMethod]
se ejecuta en un subproceso diferente del que posee una variable compartida, se puede producir un acceso simultáneo. Utilice bloqueos para proteger los datos compartidos.

Tipos de tareas y uso de subprocesos

FactoryTalk Optix
admite varios tipos de tareas para operaciones asíncronas:
  • LongRunningTask
    : Subproceso dedicado, acceso seguro para subprocesos al modelo de información, uso para operaciones largas o de bloqueo.
  • PeriodicTask
    : Subproceso dedicado, acceso seguro para subprocesos, uso para trabajo recurrente.
  • DelayedTask
    : Subproceso dedicado, acceso seguro para subprocesos, uso para acciones diferidas de una sola vez.
  • async/await
    (C#): Utiliza ThreadPool, no es seguro para el acceso al modelo de información desde subprocesos, se usa para cálculo puro o E/S sin acceso a nodos.
CONSEJO:
Todos los tipos de tareas de
FactoryTalk Optix
son seguros para el modelo de información. Utilice
async/await
o
Task.Run
solo para operaciones que no accedan a los nodos del proyecto.
Para obtener más información, consulte Ejecutar código asincrónico.
Entregue su opinión
¿Tiene dudas o comentarios acerca de esta documentación? Por favor deje su opinión aquí.
Normal