Runtime v2.81 · Na-update noong Set 30, 2026

Flow

Static na kontrol para magsimula ng mga pinangalanang macro flow nang sabay-sabay.

Syntax

Flow

Hindi direktang makakagawa ng instance ng class na ito.

Mga parameter

Wala

Ibinabalik na halaga

—

Pagkilos / epekto

Static na kontrol para magsimula ng mga pinangalanang macro flow nang sabay-sabay. Hanggang dalawang background flow ang maaaring tumakbo kasama ng main flow, at isang live invocation lang para sa bawat pangalan, pati habang naka-pause o humihinto. Agad nagbabalik ang Flow.start() kapag tinanggap ng coordinator ang branch; maaaring magsimula ng peer flow ang background flow. Hiwalay ang variables sa bawat branch at hindi ibinabalik sa tumatawag. Hinihintay ng main flow ang lahat ng background flow bago matapos ang Run. Ang maling o duplicate na pangalan, punô ang background limit, anumang error ng branch, System.stop(), o Main Stop ay magtatapos sa buong macro. Ang bawat may-numérong dock control ay pansamantalang Pause o Resume lang ng sariling branch; walang per-branch Stop. Ang Main Pause o Resume ay para sa lahat, at nililinis din ng global Resume ang local pause flag ng branch. Maaaring magkansela ang touch gesture ng magkakaibang branch. Global na magkakapareho ang ScreenCapture at audio capture policy. Parehong persistent key ang gamit ng Storage sa lahat ng branch at hindi ito inter-process messaging channel.

Pagpapatakbo

  • Naghihintay matapos: May kondisyon
  • Kaligtasan ng sabayang paggamit: Gumamit ng hiwalay na object sa bawat flow
  • Sabayang pagpapatakbo: Oo

Gumagawa ang Flow.start ng isolated background executor at nagbabalik ng Int ordinal, hindi handle. Hanggang dalawang background flow ang kasabay ng main flow. Hinihintay ng main ang background; humihinto ang buong Run sa anumang error o System.stop().

Halimbawa

# Simulan ang naka-configure na worker habang patuloy ang main flow
worker_no = Flow.start("watch_enemy", {"labels": ["boss", "guard"]})
MacroPanel.notify("Background flow #" + str(worker_no) + " started")

Mga error / limitasyon

Walang karagdagang limitasyong nakadokumento; sundin ang mga parameter at pagkilos sa itaas.

Mga kaugnay na API

Mga field

PangalanPaglalarawan
paramsdict
Read-only na kinopyang input para sa kasalukuyang branch. Walang laman na dict ang natatanggap ng main flow. Bawat pagbasa ay nagbibigay ng ligtas na data na hiwalay sa collection ng coordinator at parent VM.

Mga method

1 method

Flow.start

Magsimula ng isang naka-configure na pinangalanang flow nang hindi hinaharangan ang tumatawag.

Syntax

Flow.start(name, params=None)

Mga parameter

PangalanPaglalarawan
nameString
Eksaktong pangalan ng naka-configure na flow na lulutasin ng macro coordinator.
Kailangan · Ayon sa posisyon o pangalan
Walang default
paramsdict?
Opsyonal na ligtas na kinopyang input na makikita bilang Flow.params sa sinimulang branch.
Opsyonal · Ayon sa posisyon o pangalan
Default: None

Ibinabalik na halaga

Int — Positibong branch instance number na palaging tumataas para sa dock status at log; hindi ito control handle.

Pagkilos / epekto

Magsimula ng isang naka-configure na pinangalanang flow nang hindi hinaharangan ang tumatawag. Itinutugma ng macro coordinator ang pangalan. Kinokopya ang Params bago ipadala at maaari lamang maglaman ng None, Boolean, finite number, String, list, tuple, at dict na String ang mga key ayon sa limit ng lalim at laki; tinatanggihan ang callable, domain/resource value, at cyclic collection.

Pagpapatakbo

  • Naghihintay matapos: Hindi
  • Kaligtasan ng sabayang paggamit: Gumamit ng hiwalay na object sa bawat flow
  • Sabayang pagpapatakbo: Oo

Nagbabalik kapag tinanggap ng coordinator ang named flow; hindi nito hinihintay ang pagtatapos. Kinokopya muna ang input.

Halimbawa

# Simulan ang recognition at telemetry kasama ng main flow
recognition_no = Flow.start("recognition", {"region": "arena", "threshold": 0.86})
telemetry_no = Flow.start("telemetry")

# Sa naka-configure na recognition flow, basahin ang kinopyang input ng branch na ito
region_name = Flow.params.get("region", "full_screen")
threshold = Flow.params.get("threshold", 0.8)

Mga error / limitasyon

Walang karagdagang limitasyong nakadokumento; sundin ang mga parameter at pagkilos sa itaas.

Mga kaugnay na API