An toàn luồng
Cách cTrader chạy các thuật toán
cTrader chạy mỗi chỉ báo hoặc cBot trên một tiến trình con riêng biệt, tách biệt với tiến trình chính của cTrader Windows. Điều này có nghĩa là tất cả các phiên bản mới của chỉ báo và cBot chạy trên các tiến trình riêng biệt.
Cách tiếp cận này cho phép cTrader áp đặt các hạn chế truy cập mã trên các tiến trình riêng biệt, cải thiện tính an toàn và ổn định.
Hơn nữa, các tiến trình chỉ báo hoặc cBot riêng biệt không chia sẻ tài nguyên của chúng với tiến trình chính của cTrader Windows. Nếu có sự cố xảy ra với một chỉ báo hoặc cBot, vấn đề cơ bản sẽ không ảnh hưởng đến bản thân cTrader.
Phương thức và an toàn luồng
Chỉ một vài phương thức trong API là an toàn luồng, nghĩa là bạn có thể gọi chúng từ bất kỳ luồng nào. Mọi thứ khác nên chạy trên luồng chính của cBot hoặc chỉ báo.
Thực thi mã trên luồng chính
Để chạy một thứ gì đó trên luồng chính của cBot hoặc chỉ báo, sử dụng phương thức BeginInvokeOnMainThread(). Nó chấp nhận một đại diện hành động và bạn có thể gọi nó từ bất kỳ luồng đang chạy nào.
Chia sẻ dữ liệu giữa các phiên bản
Vì mỗi phiên bản chỉ báo hoặc cBot chạy trên một tiến trình con duy nhất, bạn có thể sử dụng các thuộc tính hoặc trường tĩnh để chia sẻ dữ liệu giữa các phiên bản khác nhau của cùng một cBot hoặc chỉ báo.