Domanda

Questo è lo scenario:

Ho una macchina del flusso di lavoro Stato con ManualWorkflowScheduler . Dicono che ci sono stati 2: State1 e Stato2 . State1 contiene un EventDrivenActivity1 che ha una SetStateActivity1 si muove il flusso di lavoro State1 a Stato2. State1 ha anche uno StateFinalizationActivity1.

Quindi la mia domanda è:

Quando un evento viene generato e SetStateActivity1 esegue e cambia lo stato del flusso di lavoro Stato2, è StateFinalizationActivity1 eseguito sullo stesso filo (come parte della chiamata) come il metodo che ha generato l'evento che provoca il cambiamento di stato (cioè - fa il metodo chiamante deve aspettare fino a quando entrambe le sequenze di EventDrivenActivity1 e StateFinalizationActivity1 esegue, o verrà restituito dopo EventDrivenActivity1 viene eseguito e StateFinalizationActivity1 sta per essere eseguito dopo il ritorno)?

È stato utile?

Soluzione

L'uso della parola "Finalizzazione" Credo che potrebbe causare alcuni a pensare alla finalizzazione CLR che avrebbe eseguito su un thread diverso. Tuttavia questo è molto diverso concetto.

Quando un SetStateActivity viene colpita la seguente sequenza accade: -

  • altre attività attualmente in esecuzione in stato attuale verrà eseguito tutte le attività nella loro gestione Annulla.
  • le attività nel StateFinalization eseguiranno
  • lo stato è la transizione al nuovo stato
  • qualsiasi attività nei nuovi stati di inizializzazione attività verrà eseguito
  • viene immesso l'attività Event nel corpo Uniti.

Tutto quanto sopra opera in sequenza sul thread corrente.

Altri suggerimenti

Quando si utilizza il tutto ManualWorkflowScheduler che può essere eseguito sarà sul thread corrente. Così il flusso di lavoro continuerà ed eseguire tutta la strada fino a quando il suo è nel prossimo stato e di inattività.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top