Bezpieczeństwo wątków
Jak cTrader uruchamia algorytmy
cTrader uruchamia każdy wskaźnik lub cBota w oddzielnym podprocesie odizolowanym od głównego procesu cTrader Windows. Oznacza to, że wszystkie nowe wystąpienia wskaźników i cBotów działają w oddzielnych procesach.
Takie podejście pozwala cTrader nałożyć ograniczenia dostępu do kodu na oddzielne procesy, poprawiając bezpieczeństwo i stabilność.
Ponadto oddzielne procesy wskaźników lub cBotów nie dzielą swoich zasobów z głównym procesem cTrader Windows. Jeśli coś pójdzie nie tak ze wskaźnikiem lub cBotem, podstawowy problem nie wpłynie na sam cTrader.
Metody i bezpieczeństwo wątków
Tylko kilka metod w API jest bezpiecznych wątkowo, co oznacza, że można je wywoływać z dowolnego wątku. Wszystko inne powinno działać w głównym wątku cBota lub wskaźnika.
Wykonywanie kodu w głównym wątku
Aby uruchomić coś w głównym wątku cBota lub wskaźnika, użyj metody BeginInvokeOnMainThread(). Akceptuje ona delegat akcji i można ją wywołać z dowolnego działającego wątku.
Udostępnianie danych między wystąpieniami
Ponieważ każde wystąpienie wskaźnika lub cBota działa w pojedynczym procesie potomnym, możesz użyć właściwości statycznych lub pól do udostępniania danych między różnymi wystąpieniami tego samego cBota lub wskaźnika.