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.