Un workflow in stato di attesa utilizza risorse di sistema perché esegue costantemente il polling dell'oggetto da cui richiede una risposta. Se si sa che un workflow potrebbe attendere molto tempo prima di ricevere la risposta che richiede, è possibile aggiungere elementi workflow con esecuzione prolungata al workflow.

Ogni workflow in esecuzione utilizza un thread di sistema. Quando un workflow raggiunge un elemento workflow con esecuzione prolungata, l'elemento workflow con esecuzione prolungata imposta lo stato passivo del workflow. L'elemento workflow con esecuzione prolungata passa quindi le informazioni del workflow a un singolo thread che esegue il polling del sistema per tutti gli elementi workflow con esecuzione prolungata in esecuzione nel server. Anziché tentare costantemente di recuperare informazioni dal sistema, tutti gli elementi workflow con esecuzione prolungata rimangono passivi per una durata impostata, mentre il thread del workflow con esecuzione prolungata esegue il polling del sistema al posto loro.

È possibile impostare la durata del periodo di attesa in uno dei seguenti modi:

  • Impostare un timer, incapsulato in un oggetto Date, che sospenda il workflow fino a una data e un'ora specifiche. È possibile implementare elementi workflow con esecuzione prolungata che si basano su un timer includendo un elemento Timer in attesa nello schema.
  • Definire un evento trigger, incapsulato in un oggetto Trigger, che riavvii il workflow dopo l'evento trigger. È possibile implementare elementi workflow con esecuzione prolungata che si basano su un trigger includendo un elemento Evento in attesa o un elemento Interazione utente nello schema.