Ir para o conteúdo

Segurança de threads

Como o cTrader executa algos

O cTrader executa cada indicador ou cBot num subprocesso separado, isolado do processo principal do cTrader Windows. Isto significa que todas as novas instâncias de indicadores e cBots são executadas em processos separados.

Esta abordagem permite ao cTrader impor restrições de acesso ao código em processos separados, melhorando a segurança e a estabilidade.

Além disso, os processos separados de indicadores ou cBots não partilham os seus recursos com o processo principal do cTrader Windows. Se algo correr mal com um indicador ou um cBot, o problema subjacente não terá efeito no próprio cTrader.

Métodos e segurança de threads

Apenas alguns métodos na API são thread-safe, o que significa que pode chamá-los a partir de qualquer thread. Tudo o resto deve ser executado na thread principal do cBot ou do indicador.

Executar código na thread principal

Para executar algo na thread principal de um cBot ou indicador, utilize o método BeginInvokeOnMainThread(). Este aceita um delegado de ação e pode ser chamado a partir de qualquer thread em execução.

Partilhar dados entre instâncias

Como cada instância de indicador ou cBot é executada num único processo filho, pode utilizar propriedades ou campos estáticos para partilhar dados entre as diferentes instâncias do mesmo cBot ou indicador.