Runtime v2.81 · อัปเดต 30 ก.ย. 2569

Flow

การควบคุมแบบ static สำหรับเริ่ม flow ของมาโครที่ตั้งชื่อให้ทำงานพร้อมกัน ได้สูงสุดสอง flow เบื้องหลังข้าง main flow และแต่ละชื่อมี invocation ที่ยังทำงานได้เพียงหนึ่งรายการ รวมช่วง pause หรือ stopping ด้วย Flow.start() คืนค่าทันทีเมื่อ coordinator รับ branch แล้ว flow เบื้องหลังเริ่ม flow เพื่อนได้ ตัวแปรแยกตาม branch และไม่รวมกลับไปยังผู้เรียก main flow จะรอ flow เบื้องหลังทั้งหมดก่อน Run จบ ชื่อผิดหรือซ้ำ พื้นที่ flow เต็ม ข้อผิดพลาดของ branch ใด ๆ System.stop() หรือ Main Stop จะจบมาโครทั้งหมด ปุ่ม dock ของ flow เบื้องหลังแต่ละหมายเลขทำได้เพียง Pause หรือ Resume ชั่วคราวเฉพาะ branch นั้น ไม่มี Stop เฉพาะ branch Pause หรือ Resume ของ Main ใช้กับทุก branch และ Resume ทั่วโลกจะล้างสถานะ pause เฉพาะ branch ด้วย gesture สัมผัสจากต่าง branch อาจยกเลิกกันเอง นโยบาย ScreenCapture และ audio capture ใช้ร่วมกันทั่วโลก Storage ใช้คีย์ถาวรร่วมกันระหว่าง branch และไม่ใช่ช่องส่งข้อความระหว่างโปรเซส

รูปแบบคำสั่ง

Flow

ไม่สามารถสร้างคลาสนี้โดยตรงได้

พารามิเตอร์

ไม่มี

ค่าที่ส่งกลับ

—

พฤติกรรม / ผลข้างเคียง

การควบคุมแบบ static สำหรับเริ่ม flow ของมาโครที่ตั้งชื่อให้ทำงานพร้อมกัน ได้สูงสุดสอง flow เบื้องหลังข้าง main flow และแต่ละชื่อมี invocation ที่ยังทำงานได้เพียงหนึ่งรายการ รวมช่วง pause หรือ stopping ด้วย Flow.start() คืนค่าทันทีเมื่อ coordinator รับ branch แล้ว flow เบื้องหลังเริ่ม flow เพื่อนได้ ตัวแปรแยกตาม branch และไม่รวมกลับไปยังผู้เรียก main flow จะรอ flow เบื้องหลังทั้งหมดก่อน Run จบ ชื่อผิดหรือซ้ำ พื้นที่ flow เต็ม ข้อผิดพลาดของ branch ใด ๆ System.stop() หรือ Main Stop จะจบมาโครทั้งหมด ปุ่ม dock ของ flow เบื้องหลังแต่ละหมายเลขทำได้เพียง Pause หรือ Resume ชั่วคราวเฉพาะ branch นั้น ไม่มี Stop เฉพาะ branch Pause หรือ Resume ของ Main ใช้กับทุก branch และ Resume ทั่วโลกจะล้างสถานะ pause เฉพาะ branch ด้วย gesture สัมผัสจากต่าง branch อาจยกเลิกกันเอง นโยบาย ScreenCapture และ audio capture ใช้ร่วมกันทั่วโลก Storage ใช้คีย์ถาวรร่วมกันระหว่าง branch และไม่ใช่ช่องส่งข้อความระหว่างโปรเซส

การทำงาน

  • รอให้เสร็จ: ขึ้นอยู่กับเงื่อนไข
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

Flow.start สร้างตัวประมวลผลเบื้องหลังที่แยกกันและคืนเลขลำดับ Int ไม่ใช่ handle มีโฟลว์เบื้องหลังได้สูงสุดสองโฟลว์ โฟลว์หลักรอให้เบื้องหลังจบ ข้อผิดพลาดหรือ System.stop() หยุดทั้ง Run

ตัวอย่าง

# เริ่ม worker ที่ตั้งค่าไว้ขณะที่ main flow ยังทำงาน
worker_no = Flow.start("watch_enemy", {"labels": ["boss", "guard"]})
MacroPanel.notify("Background flow #" + str(worker_no) + " started")

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง

ฟิลด์

ชื่อคำอธิบาย
paramsdict
อินพุตที่คัดลอกแบบอ่านอย่างเดียวสำหรับ branch ปัจจุบัน main flow ได้รับ dict ว่าง การอ่านแต่ละครั้งคืนข้อมูลที่ปลอดภัยและแยกจาก collection ของ coordinator และ VM แม่

เมธอด

1 เมธอด

Flow.start

เริ่ม flow ที่ตั้งชื่อไว้หนึ่งรายการโดยไม่บล็อกผู้เรียก coordinator ของมาโครจะตรวจชื่อ Params ถูกคัดลอกก่อนส่งและมีได้เฉพาะ None, Boolean, จำนวนจำกัด, String, list, tuple และ dict ที่มีคีย์ String ภายในขีดจำกัดความลึกและขนาดของ runtime โดยจะปฏิเสธ callable ค่า domain/ทรัพยากร และ collection แบบวนรอบ

รูปแบบคำสั่ง

Flow.start(name, params=None)

พารามิเตอร์

ชื่อคำอธิบาย
nameString
ชื่อ flow ที่ตั้งค่าไว้ตรงตามที่ macro coordinator แก้ไขได้
จำเป็น · ระบุตามตำแหน่งหรือชื่อ
ไม่มีค่าเริ่มต้น
paramsdict?
อินพุตที่คัดลอกอย่างปลอดภัยแบบไม่บังคับ ซึ่งจะแสดงเป็น Flow.params ใน branch ที่เริ่ม
ไม่บังคับ · ระบุตามตำแหน่งหรือชื่อ
ค่าเริ่มต้น: None

ค่าที่ส่งกลับ

Int — หมายเลข instance ของ branch ที่เป็นบวกและเพิ่มขึ้นเรื่อย ๆ สำหรับสถานะ dock และ log ไม่ใช่ handle ควบคุม

พฤติกรรม / ผลข้างเคียง

เริ่ม flow ที่ตั้งชื่อไว้หนึ่งรายการโดยไม่บล็อกผู้เรียก coordinator ของมาโครจะตรวจชื่อ Params ถูกคัดลอกก่อนส่งและมีได้เฉพาะ None, Boolean, จำนวนจำกัด, String, list, tuple และ dict ที่มีคีย์ String ภายในขีดจำกัดความลึกและขนาดของ runtime โดยจะปฏิเสธ callable ค่า domain/ทรัพยากร และ collection แบบวนรอบ

การทำงาน

  • รอให้เสร็จ: ไม่
  • ความปลอดภัยเมื่อทำงานพร้อมกัน: ใช้วัตถุแยกสำหรับแต่ละโฟลว์
  • การทำงานแบบขนาน: ใช่

คืนค่าหลังตัวประสานยอมรับโฟลว์ที่มีชื่อ ไม่รอให้โฟลว์นั้นจบ ข้อมูลเข้าถูกคัดลอกก่อนส่ง

ตัวอย่าง

# เริ่มการตรวจจับและ telemetry ข้าง main flow
recognition_no = Flow.start("recognition", {"region": "arena", "threshold": 0.86})
telemetry_no = Flow.start("telemetry")

# อ่านอินพุตที่คัดลอกของ branch นี้ภายใน flow ตรวจจับที่ตั้งค่าไว้
region_name = Flow.params.get("region", "full_screen")
threshold = Flow.params.get("threshold", 0.8)

ข้อผิดพลาด / ข้อจำกัด

ไม่มีข้อจำกัดเพิ่มเติมที่ระบุไว้ ให้ปฏิบัติตามพารามิเตอร์และพฤติกรรมข้างต้น

API ที่เกี่ยวข้อง