Udostępnij za pośrednictwem


Instrukcje: Tworzenie przepływu pracy automatu stanów

Przepływy pracy można tworzyć z wbudowanych działań, a także z niestandardowych działań. W tym temacie przedstawiono procedurę tworzenia przepływu pracy, który używa zarówno wbudowanych działań, jak StateMachine i działań niestandardowych z poprzedniego tematu Instrukcje: tworzenie działania . Przepływ pracy modeluje liczbę zgadywania gry.

Uwaga

Każdy temat w samouczku Wprowadzenie zależy od poprzednich tematów. Aby ukończyć ten temat, należy najpierw ukończyć instrukcje: tworzenie działania.

Aby utworzyć przepływ pracy

  1. Kliknij prawym przyciskiem myszy pozycję NumberGuessWorkflowActivities w Eksplorator rozwiązań i wybierz pozycję Dodaj, Nowy element.

  2. W węźle Zainstalowane elementy wspólne wybierz pozycję Przepływ pracy. Wybierz pozycję Działanie z listy Przepływ pracy .

  3. Wpisz StateMachineNumberGuessWorkflow w polu Nazwa i kliknij przycisk Dodaj.

  4. Przeciągnij działanie StateMachine z sekcji State Machine przybornika i upuść je na etykietę Upuść tutaj na powierzchni projektowej przepływu pracy.

Aby utworzyć zmienne i argumenty przepływu pracy

  1. Kliknij dwukrotnie plik StateMachineNumberGuessWorkflow.xaml w Eksplorator rozwiązań, aby wyświetlić przepływ pracy w projektancie, jeśli nie jest jeszcze wyświetlany.

  2. Kliknij pozycję Argumenty w lewym dolnym rogu projektanta przepływu pracy, aby wyświetlić okienko Argumenty .

  3. Kliknij pozycję Utwórz argument.

  4. Wpisz MaxNumber w polu Nazwa , wybierz pozycję W z listy rozwijanej Kierunek , wybierz pozycję Int32 z listy rozwijanej Typ argumentu, a następnie naciśnij klawisz ENTER, aby zapisać argument.

  5. Kliknij pozycję Utwórz argument.

  6. Wpisz Turns w polu Nazwa poniżej nowo dodanego MaxNumber argumentu, wybierz z listy rozwijanej Kierunek wybierzpozycję Int32 z listy rozwijanej Typ argumentu, a następnie naciśnij klawisz ENTER.

  7. Kliknij pozycję Argumenty w lewym dolnym rogu projektanta działań, aby zamknąć okienko Argumenty .

  8. Kliknij pozycję Zmienne w lewym dolnym rogu projektanta przepływu pracy, aby wyświetlić okienko Zmienne .

  9. Kliknij pozycję Utwórz zmienną.

    Napiwek

    Jeśli nie zostanie wyświetlone pole Utwórz zmienną , kliknij StateMachine działanie na powierzchni projektanta przepływu pracy, aby je zaznaczyć.

  10. Wpisz Guess w polu Nazwa , wybierz pozycję Int32 z listy rozwijanej Typ zmiennej, a następnie naciśnij klawisz ENTER, aby zapisać zmienną.

  11. Kliknij pozycję Utwórz zmienną.

  12. Wpisz Target w polu Nazwa , wybierz pozycję Int32 z listy rozwijanej Typ zmiennej, a następnie naciśnij klawisz ENTER, aby zapisać zmienną.

  13. Kliknij pozycję Zmienne w lewym dolnym rogu projektanta działań, aby zamknąć okienko Zmienne .

Aby dodać działania przepływu pracy

  1. Kliknij pozycję State1 , aby go wybrać. W oknie Właściwości zmień wartość DisplayName na Initialize Target.

    Napiwek

    Jeśli okno Właściwości nie jest wyświetlane, wybierz pozycję Okno właściwości z menu Widok.

  2. Kliknij dwukrotnie nowo zmienioną nazwę stanu Inicjowanie elementu docelowego w projektancie przepływu pracy, aby ją rozwinąć.

  3. Przeciągnij działanie Przypisywanie z sekcji Typy pierwotne przybornika i upuść je na sekcję Wpis stanu. Wpisz Target w polu Do i następujące wyrażenie w polu Wprowadź wyrażenie języka C# lub Wprowadź wyrażenie VB.

    New System.Random().Next(1, MaxNumber + 1)  
    
    new System.Random().Next(1, MaxNumber + 1)  
    

    Napiwek

    Jeśli okno Przybornik nie jest wyświetlane, wybierz pozycję Przybornik z menu Widok.

  4. Wróć do ogólnego widoku maszyny stanu w projektancie przepływu pracy, klikając pozycję StateMachine w widoku do stron nadrzędnych w górnej części projektanta przepływu pracy.

  5. Przeciągnij działanie State (Stan) z sekcji State Machine (Maszyna stanu) przybornika do projektanta przepływu pracy i umieść kursor na stanie Inicjowanie elementu docelowego. Należy pamiętać, że cztery trójkąty będą wyświetlane wokół stanu Inicjowanie elementu docelowego po jego przekroczeniu. Upuść nowy stan na trójkącie, który znajduje się bezpośrednio poniżej stanu Inicjowanie elementu docelowego . Spowoduje to umieszczenie nowego stanu w przepływie pracy i utworzenie przejścia ze stanu Inicjowanie elementu docelowego do nowego stanu.

  6. Kliknij pozycję State1 , aby go zaznaczyć, zmień wartość DisplayName na Enter Guess, a następnie kliknij dwukrotnie stan w projektancie przepływu pracy, aby go rozwinąć.

  7. Przeciągnij działanie WriteLine z sekcji Typy pierwotne przybornika i upuść je w sekcji Entry stanu.

  8. Wpisz następujące wyrażenie w polu Właściwości Text w polu WriteLine.

    "Please enter a number between 1 and " & MaxNumber  
    
    "Please enter a number between 1 and " + MaxNumber  
    
  9. Przeciągnij działanie Assign (Przypisz) z sekcji Primitives (Pierwotne) przybornika i upuść je na sekcję Exit (Wyjście) stanu.

  10. Wpisz Turns w polu Do i Turns + 1 w polu Wprowadź wyrażenie języka C# lub Wprowadź wyrażenie VB.

  11. Wróć do ogólnego widoku maszyny stanu w projektancie przepływu pracy, klikając pozycję StateMachine w widoku do stron nadrzędnych w górnej części projektanta przepływu pracy.

  12. Przeciągnij działanie FinalState z sekcji State Machine przybornika, umieść kursor na stanie Enter Guess i upuść je na trójkąt, który pojawia się po prawej stronie stanu Enter Guess, aby przejście zostało utworzone między klawiszem Enter Guess i FinalState.

  13. Domyślną nazwą przejścia jest T2. Kliknij przejście w projektancie przepływu pracy, aby go wybrać, a następnie ustaw jego wartość DisplayName na Wartość Odgadnij poprawność. Następnie kliknij i wybierz pozycję FinalState, a następnie przeciągnij ją po prawej stronie, aby można było wyświetlić pełną nazwę przejścia bez nakładania jednego z dwóch stanów. Ułatwi to wykonanie pozostałych kroków w samouczku.

  14. Kliknij dwukrotnie nowo zmienione przejście Guess Correct w projektancie przepływu pracy, aby go rozwinąć.

  15. Przeciągnij działanie ReadInt z sekcji NumberGuessWorkflowActivities przybornika i upuść je w sekcji Wyzwalacz przejścia.

  16. W oknie Właściwości dla działania ReadInt wpisz"EnterGuess", w tym cudzysłowy w polu wartość właściwości BookmarkName, a następnie wpisz Guess wartość właściwości Result.

  17. Wpisz następujące wyrażenie w polu Wartość właściwości Warunek poprawnegoodgadnięcia.

    Guess = Target  
    
    Guess == Target  
    
  18. Wróć do ogólnego widoku maszyny stanu w projektancie przepływu pracy, klikając pozycję StateMachine w widoku do stron nadrzędnych w górnej części projektanta przepływu pracy.

    Uwaga

    Przejście występuje, gdy zdarzenie wyzwalacza zostanie odebrane, a Conditionwartość , jeśli istnieje, zwróci wartość .True W przypadku tego przejścia, jeśli użytkownik Guess jest zgodny z losowo wygenerowanym Targetelementem , kontrolka przechodzi do wartości FinalState i przepływ pracy zostanie ukończony.

  19. W zależności od tego, czy odgadnięcie jest poprawne, przepływ pracy powinien przejść do stanu FinalState lub z powrotem do stanu Enter Guess dla innej próby. Oba przejścia współużytkować ten sam wyzwalacz oczekiwania na odebranie przez użytkownika za pośrednictwem działania ReadInt . Jest to nazywane przejściem udostępnionym. Aby utworzyć przejście udostępnione, kliknij okrąg wskazujący początek przejścia Guess Correct i przeciągnij go do żądanego stanu. W takim przypadku przejście jest przejściem własnym, dlatego przeciągnij punkt początkowy przejścia Guess Correct i upuść go z powrotem na dół stanu Enter Guess . Po utworzeniu przejścia wybierz go w projektancie przepływu pracy i ustaw jej właściwość DisplayName na Wartość Odgadnij niepoprawne.

    Uwaga

    Udostępnione przejścia można również utworzyć z poziomu projektanta przejścia, klikając pozycję Dodaj udostępnione przejście wyzwalacza w dolnej części projektanta przejścia, a następnie wybierając żądany stan docelowy z listy rozwijanej Dostępne stany, aby nawiązać połączenie .

    Uwaga

    Należy pamiętać, że jeśli Condition wartość przejścia zostanie obliczona na false wartość (lub wszystkie warunki przejścia współużytkowanego wyzwalacza zostanie obliczona na falsewartość ), przejście nie nastąpi, a wszystkie wyzwalacze dla wszystkich przejść ze stanu zostaną ponownie anulowane. W tym samouczku nie można wykonać tej sytuacji ze względu na sposób skonfigurowania warunków (mamy określone akcje dotyczące tego, czy odgadnięcie jest poprawne, czy nieprawidłowe).

  20. Kliknij dwukrotnie przejście Odgadnij niepoprawne w projektancie przepływu pracy, aby go rozwinąć. Pamiętaj, że wyzwalacz jest już ustawiony na to samo działanie ReadInt , które zostało użyte przez przejście Guess Correct .

  21. Wpisz następujące wyrażenie w polu Wartość właściwości Warunek .

    Guess <> Target  
    
    Guess != Target  
    
  22. Przeciągnij działanie If z sekcji Przepływ sterowania przybornika i upuść je w sekcji Akcja przejścia.

  23. Wpisz następujące wyrażenie w polu Wartość właściwości Warunek działania.

    Guess < Target
    
  24. Przeciągnij dwa działania WriteLine z sekcji Typy pierwotne przybornika i upuść je tak, aby jeden znajduje się w sekcji Następnie działania If, a drugi znajduje się w sekcji Else.

  25. Kliknij działanie WriteLine w sekcji Następnie, aby ją zaznaczyć, i wpisz następujące wyrażenie w polu Wartość właściwości Text.

    "Your guess is too low."  
    
  26. Kliknij działanie WriteLine w sekcji Else, aby je zaznaczyć, i wpisz następujące wyrażenie w polu Wartość właściwości Text.

    "Your guess is too high."  
    
  27. Wróć do ogólnego widoku maszyny stanu w projektancie przepływu pracy, klikając pozycję StateMachine w widoku do stron nadrzędnych w górnej części projektanta przepływu pracy.

    Poniższy przykład ilustruje ukończony przepływ pracy.

    Illustration that shows the completed state machine workflow.

Aby utworzyć przepływ pracy

  1. Naciśnij kombinację klawiszy CTRL+SHIFT+B w celu skompilowania rozwiązania.

    Aby uzyskać instrukcje dotyczące sposobu uruchamiania przepływu pracy, zobacz następny temat Instrukcje: uruchamianie przepływu pracy. Jeśli wykonano już krok Instrukcje: uruchamianie kroku przepływu pracy z innym stylem przepływu pracy i chcesz uruchomić go przy użyciu przepływu pracy maszyny stanu z tego kroku, przejdź do sekcji Aby skompilować i uruchomić aplikację w temacie Instrukcje: Uruchamianie przepływu pracy.

Zobacz też