Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un diagramma di flusso è un paradigma noto per la progettazione di programmi. L'attività Diagramma di Flusso viene in genere usata per implementare flussi di lavoro non sequenziali, ma può essere usata per i flussi di lavoro sequenziali se i nodi FlowDecision
non vengono utilizzati.
Struttura del flusso di lavoro diagramma di flusso
Un'attività di diagramma di flusso è un'attività che include una serie di attività da eseguire. I diagrammi di flusso contengono anche elementi di controllo del flusso, FlowDecision ad esempio e FlowSwitch<T> che indirizzano l'esecuzione tra le attività contenute in base ai valori delle variabili.
Tipi di nodi di flusso
Vengono usati diversi tipi di elementi a seconda del tipo di controllo del flusso richiesto quando l'elemento viene eseguito. I tipi di elementi del diagramma di flusso includono:
FlowStep
- Modella un passaggio di esecuzione nel diagramma di flusso.FlowDecision
- Crea rami di esecuzione in base a una condizione booleana, simile a If.FlowSwitch
: crea rami di esecuzione in base a un commutatore esclusivo, simile a Switch<T>.
Ogni collegamento ha una Action
proprietà che definisce un ActivityAction oggetto che può essere utilizzato per eseguire attività subordinate e una o più Next
proprietà che definiscono quali elementi eseguire quando l'elemento corrente termina l'esecuzione.
Creazione di una sequenza di attività di base con un nodo FlowStep
Per modellare una sequenza di base in cui due attività vengono eseguite a sua volta, viene usato l'elemento FlowStep
. Nell'esempio seguente vengono usati due FlowStep
elementi per eseguire due attività in sequenza.
<Flowchart>
<FlowStep>
<Assign DisplayName="Get Name">
<Assign.To>
<OutArgument x:TypeArguments="x:String">[result]</OutArgument>
</Assign.To>
<Assign.Value>
<InArgument x:TypeArguments="x:String">["User"]</InArgument>
</Assign.Value>
</Assign>
<FlowStep.Next>
<FlowStep>
<WriteLine Text="Hello, " & [result]/>
</FlowStep>
</FlowStep.Next>
</FlowStep>
</Flowchart>
Creazione di un diagramma di flusso condizionale con un nodo FlowDecision
Per modellare un nodo del flusso condizionale in un flusso di lavoro del diagramma di flusso, ovvero per creare un collegamento che funzioni come simbolo decisionale di un diagramma di flusso tradizionale, viene usato un FlowDecision nodo. La Condition proprietà del nodo è impostata su un'espressione che definisce la condizione e le True proprietà e False vengono impostate sulle FlowNode istanze da eseguire se l'espressione restituisce true
o false
. Nell'esempio seguente viene illustrato come definire un flusso di lavoro che usa un FlowDecision nodo.
<Flowchart>
<FlowStep>
<Read Result="[s]"/>
<FlowStep.Next>
<FlowDecision>
<IsEmpty Input="[s]" />
<FlowDecision.True>
<FlowStep>
<Write Text="Empty"/>
</FlowStep>
</FlowDecision.True>
<FlowDecision.False>
<FlowStep>
<Write Text="Non-Empty"/>
</FlowStep>
</FlowDecision.False>
</FlowDecision>
</FlowStep.Next>
</FlowStep>
</Flowchart>
Creazione di un commutatore esclusivo con un nodo FlowSwitch
Per modellare un diagramma di flusso in cui viene selezionato un percorso esclusivo in base a un valore corrispondente, viene usato il FlowSwitch<T> nodo. La proprietà Expression è impostata su un Activity<TResult> con un parametro di tipo Object che definisce il valore con cui confrontare le opzioni. La Cases proprietà definisce un dizionario di chiavi e FlowNode oggetti da associare all'espressione condizionale e un set di FlowNode oggetti che definiscono il flusso dell'esecuzione se il case specificato corrisponde all'espressione condizionale. Definisce FlowSwitch<T> inoltre una Default proprietà che definisce come deve procedere l'esecuzione se nessuna istruzione corrisponde all'espressione della condizione. Nell'esempio seguente viene illustrato come definire un flusso di lavoro che usa un FlowSwitch<T> elemento .
<Flowchart>
<FlowSwitch>
<FlowStep x:Key="Red">
<WriteRed/>
</FlowStep>
<FlowStep x:Key="Blue">
<WriteBlue/>
</FlowStep>
<FlowStep x:Key="Green">
<WriteGreen/>
</FlowStep>
</FlowSwitch>
</Flowchart>