Przejdź do treści

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.