ข้ามไปที่เนื้อหา

ความปลอดภัยของเธรด

วิธีที่ cTrader รัน Algo

cTrader รันแต่ละอินดิเคเตอร์หรือ cBot บนกระบวนการย่อยแยกต่างหากจากกระบวนการหลักของ cTrader Windows ซึ่งหมายความว่าอินสแตนซ์ใหม่ทั้งหมดของอินดิเคเตอร์และ cBot จะทำงานบนกระบวนการแยกต่างหาก

วิธีการนี้ช่วยให้ cTrader สามารถกำหนดข้อจำกัดการเข้าถึงโค้ดบนกระบวนการแยกต่างหาก ซึ่งช่วยปรับปรุงความปลอดภัยและความเสถียร

นอกจากนี้ กระบวนการอินดิเคเตอร์หรือ cBot แยกต่างหากจะไม่แชร์ทรัพยากรกับกระบวนการหลักของ cTrader Windows หากมีข้อผิดพลาดเกิดขึ้นกับอินดิเคเตอร์หรือ cBot ปัญหาที่เกิดขึ้นจะไม่ส่งผลกระทบต่อ cTrader เอง

เมธอดและความปลอดภัยของเธรด

มีเพียงไม่กี่เมธอดใน API ที่ปลอดภัยต่อเธรด ซึ่งหมายความว่าคุณสามารถเรียกใช้จากเธรดใดก็ได้ ส่วนที่เหลือทั้งหมดควรทำงานบนเธรดหลักของ cBot หรืออินดิเคเตอร์

ดำเนินการโค้ดบนเธรดหลัก

หากต้องการรันบางสิ่งบนเธรดหลักของ cBot หรืออินดิเคเตอร์ ให้ใช้เมธอด BeginInvokeOnMainThread() มันรับตัวแทนการดำเนินการ และคุณสามารถเรียกใช้จากเธรดที่กำลังทำงานใดก็ได้

แชร์ข้อมูลระหว่างอินสแตนซ์

เนื่องจากแต่ละอินสแตนซ์ของอินดิเคเตอร์หรือ cBot ทำงานบนกระบวนการย่อยเดียว คุณสามารถใช้คุณสมบัติหรือฟิลด์แบบ static เพื่อแชร์ข้อมูลระหว่างอินสแตนซ์ต่าง ๆ ของ cBot หรืออินดิเคเตอร์เดียวกันได้