Minuterie - page 7

 
Yurich:
si seulement :)
Cela doit être plus facile pour les développeurs, sinon ils devraient expliquer que les variables globales ne peuvent être modifiées dans le gestionnaire OnTick qu'à mi-chemin, lorsque l'événement timer se produit et que le programme y passe.
 
N'utilisez pas MessageBox sans réfléchir.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox - Документация по MQL5
 
pusheax:
C'est probablement plus facile pour les développeurs, sinon ils devraient expliquer que les variables globales ne peuvent être modifiées qu'à mi-chemin dans le gestionnaire OnTick, lorsqu'un événement de minuterie s'est produit et que le programme y est passé.
Il existe de courts "blocs ininterrompus" pour cela. L'interruption attend quand même qu'elle se termine, puis s'interrompt.
 
Yurich:
si seulement :)
Exactement.
 
TheXpert:
Je ne veux pas utiliser MessageBox sans réfléchir.
C'est pourquoi j'ai dû créer deux fils dans YuTrade pour éviter de sauter des événements. Et avec les interruptions, tout serait dans un seul fil.
 
MetaDriver:
Il existe de courts "blocs ininterrompus" pour cela. L'interruption attend qu'elle se termine dans tous les cas, puis s'interrompt.

Je ne le savais pas du tout, et j'ai écrit en supposant qu'il pourrait y avoir une interruption et que les données ne seraient pas entièrement traitées.

Définir les drapeaux pour commencer et terminer le traitement.

 
Yurich:
Une interruption se produit lorsque OnTick est en cours d'exécution et qu'un événement plus important, tel que OnTimer, est arrivé. L'exécution de OnTick est mise en pause, le code OnTimer est exécuté, puis OnTick est exécuté à nouveau.
En somme, vous avez besoin d'une sorte de multithreading.
 
Yurich:
Et avec les interruptions, tout serait dans le même fil.
Ah, mauvais argument. La façon dont c'est maintenant -- bien.
 
pusheax:

Et je n'étais pas du tout au courant et j'ai écrit avec la possibilité qu'il y ait une interruption et que les données ne soient pas entièrement traitées.

Je mets des drapeaux pour commencer et terminer le traitement.

C'est parti. Le public est déjà à mi-chemin, vous pouvez entrer en toute sécurité.

;)

 
Interesting:
En général, il faut au moins un peu de multithreading pour les maternelles.
Peut-être que les développeurs l'ajouteront plus tard : CreateThread(NULL,0,CaptureThread,0,CREATE_SUSPENDED,&ThreadId) ; ?