Condividi tramite


Utilizzo di DefaultWorkflowSchedulerService

Per impostazione predefinita, la classe DefaultWorkflowSchedulerService viene utilizzata dal motore di runtime del flusso di lavoro. Questa classe crea e gestisce i thread che eseguono istanze del flusso di lavoro in modo asincrono sul motore di runtime del flusso di lavoro. Flussi di lavoro in attesa di esecuzione vengono archiviati nella coda interna della classe DefaultWorkflowSchedulerService. Quando la classe DefaultWorkflowSchedulerService intende avviare un flusso di lavoro, viene acquisito un thread dal pool di thread .NET Framework e tale thread viene utilizzato per eseguire il flusso di lavoro. La proprietà MaxSimultaneousWorkflows determina quanti thread simultanei il servizio Utilità di pianificazione consentirà contemporaneamente. Se il limite è, ad esempio, pari a quattro, la classe DefaultWorkflowSchedulerService acquisirà fino a quattro thread dal pool di thread .NET Framework per eseguire i flussi di lavoro. Se sono già in esecuzione quattro flussi di lavoro, gli altri elementi di lavoro (flussi di lavoro) vengono inseriti in coda e verranno eseguiti dai thread che si renderanno disponibili. Nella figura seguente viene illustrato come la classe DefaultWorkflowSchedulerService esegua flussi di lavoro in modo asincrono.

Esecuzione del flusso di lavoro asincrono

È possibile impostare il numero massimo di istanze del flusso di lavoro che possono essere attive contemporaneamente passando un parametro al costruttore DefaultWorkflowSchedulerService o utilizzando un file di configurazione dell'applicazione. Nell'Attività 1: configurare i servizi di runtime mediante il codice viene illustrato come configurare la classe DefaultWorkflowSchedulerService utilizzando il costruttore. Nell'Attività 2: configurare i servizi di runtime con App.Config viene illustrata la medesima configurazione della classe DefaultWorkflowSchedulerService utilizzando un file di configurazione dell'applicazione.

Nota

L'impostazione della classe MaxSimultaneousWorkflows su un valore elevato può causare la mancanza di risorse per il pool di thread .NET Framework. Questo può provocare timeout quando un servizio di persistenza tenta di completare una transazione di persistenza perché anche gli oggetti Transaction utilizzano il pool di thread .NET Framework.

Vedere anche

Riferimenti

DefaultWorkflowSchedulerService
MaxSimultaneousWorkflows

Concetti

Servizi di pianificazione del flusso di lavoro di Windows

Footer image

Copyright © 2007 Microsoft Corporation. Tutti i diritti riservati.