Aller au contenu

Sécurité des threads

Comment cTrader exécute les algorithmes

cTrader exécute chaque indicateur ou cBot sur un sous-processus distinct isolé du processus principal de cTrader Windows. Cela signifie que toutes les nouvelles instances d'indicateurs et de cBots s'exécutent sur des processus distincts.

Cette approche permet à cTrader d'imposer des restrictions d'accès au code sur des processus distincts, améliorant ainsi la sécurité et la stabilité.

De plus, les processus distincts d'indicateurs ou de cBots ne partagent pas leurs ressources avec le processus principal de cTrader Windows. Si quelque chose ne va pas avec un indicateur ou un cBot, le problème sous-jacent n'aura pas d'effet sur cTrader lui-même.

Méthodes et sécurité des threads

Seules quelques méthodes de l'API sont thread-safe, ce qui signifie que vous pouvez les appeler depuis n'importe quel thread. Tout le reste doit s'exécuter sur le thread principal du cBot ou de l'indicateur.

Exécuter du code sur le thread principal

Pour exécuter quelque chose sur le thread principal d'un cBot ou d'un indicateur, utilisez la méthode BeginInvokeOnMainThread(). Elle accepte un délégué d'action et vous pouvez l'appeler depuis n'importe quel thread en cours d'exécution.

Partager des données entre les instances

Comme chaque instance d'indicateur ou de cBot s'exécute sur un seul processus enfant, vous pouvez utiliser des propriétés ou des champs statiques pour partager des données entre les différentes instances d'un même cBot ou indicateur.