Runtime v2.81 · Diperbarui 30 Sep 2026

Flow

Kontrol statis untuk memulai flow makro bernama secara paralel.

Sintaks

Flow

Kelas ini tidak dapat dibuat langsung.

Parameter

Tidak ada

Nilai yang dikembalikan

—

Perilaku / efek samping

Kontrol statis untuk memulai flow makro bernama secara paralel. Maksimal dua flow latar dapat berjalan bersama flow utama, dan hanya satu pemanggilan aktif untuk setiap nama flow, termasuk saat dijeda atau dihentikan. Flow.start() segera mengembalikan nilai setelah coordinator menerima cabang; flow latar dapat memulai flow sebaya. Variabel terisolasi per cabang dan tidak pernah digabungkan ke pemanggil. Flow utama menunggu semua flow latar sebelum Run selesai. Nama tidak valid atau duplikat, kapasitas flow penuh, kesalahan cabang apa pun, System.stop(), atau Main Stop mengakhiri seluruh makro. Kontrol dock bernomor untuk setiap flow latar hanya dapat menjeda atau melanjutkan cabang itu sementara; tidak ada Stop per cabang. Pause atau Resume Main berlaku untuk semua cabang, dan Resume global juga menghapus tanda jeda lokal cabang. Gesture sentuh dari cabang berbeda dapat saling membatalkan. Kebijakan ScreenCapture dan audio capture dipakai bersama secara global. Storage memakai kunci persisten yang sama antar-cabang dan bukan kanal pesan antarproses.

Eksekusi

  • Menunggu selesai: Bersyarat
  • Keamanan akses bersamaan: Gunakan objek terpisah di tiap alur
  • Eksekusi paralel: Ya

Flow.start membuat executor latar yang terisolasi dan mengembalikan nomor urut Int, bukan handle. Maksimal dua alur latar berjalan bersama alur utama. Alur utama menunggu selesai; kesalahan alur mana pun atau System.stop() menghentikan seluruh Run.

Contoh

# Mulai worker terkonfigurasi saat flow utama tetap berjalan
worker_no = Flow.start("watch_enemy", {"labels": ["boss", "guard"]})
MacroPanel.notify("Background flow #" + str(worker_no) + " started")

Kesalahan / batasan

Tidak ada batasan tambahan yang didokumentasikan; ikuti kontrak parameter dan perilaku di atas.

API terkait

Field

NamaDeskripsi
paramsdict
Input salinan hanya-baca untuk cabang saat ini. Flow utama menerima dict kosong. Setiap pembacaan mengembalikan data aman yang terpisah dari collection coordinator dan VM induk.

Metode

1 metode

Flow.start

Memulai satu flow bernama yang dikonfigurasi tanpa memblokir pemanggil.

Sintaks

Flow.start(name, params=None)

Parameter

NamaDeskripsi
nameString
Nama flow terkonfigurasi yang tepat untuk diselesaikan oleh coordinator makro.
Wajib · Posisi atau nama
Tanpa nilai bawaan
paramsdict?
Input salinan aman opsional yang tersedia sebagai Flow.params di cabang yang dimulai.
Opsional · Posisi atau nama
Default: None

Nilai yang dikembalikan

Int — Nomor instance cabang positif yang meningkat monoton untuk status dock dan log; ini bukan handle kontrol.

Perilaku / efek samping

Memulai satu flow bernama yang dikonfigurasi tanpa memblokir pemanggil. Nama dicocokkan oleh coordinator makro. Params disalin sebelum dikirim dan hanya boleh berisi None, Boolean, angka terbatas, String, list, tuple, serta dict dengan kunci String dalam batas kedalaman dan ukuran runtime; callable, nilai domain/resource, dan koleksi siklik ditolak.

Eksekusi

  • Menunggu selesai: Tidak
  • Keamanan akses bersamaan: Gunakan objek terpisah di tiap alur
  • Eksekusi paralel: Ya

Kembali setelah koordinator menerima alur bernama; tidak menunggu alur selesai. Masukan disalin sebelum dikirim.

Contoh

# Mulai pengenalan dan telemetri bersama flow utama
recognition_no = Flow.start("recognition", {"region": "arena", "threshold": 0.86})
telemetry_no = Flow.start("telemetry")

# Di dalam flow pengenalan yang dikonfigurasi, baca input salinan cabang ini
region_name = Flow.params.get("region", "full_screen")
threshold = Flow.params.get("threshold", 0.8)

Kesalahan / batasan

Tidak ada batasan tambahan yang didokumentasikan; ikuti kontrak parameter dan perilaku di atas.

API terkait