Timer - pagina 7

 
Yurich:
se solo :)
Deve essere più facile per gli sviluppatori, altrimenti dovrebbero spiegare che le variabili globali possono essere cambiate nel gestore OnTick solo a metà quando l'evento timer si è verificato e il programma è passato ad esso.
 
Non usate MessageBox in modo sconsiderato.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox - Документация по MQL5
 
pusheax:
Questo è probabilmente più facile per gli sviluppatori, altrimenti dovrebbero spiegare che le variabili globali possono essere cambiate solo a metà nel gestore OnTick quando si è verificato un evento timer e il programma è passato ad esso.
Ci sono brevi "blocchi ininterrotti" per questo. L'interrupt aspetta comunque che si completi, poi abortisce.
 
Yurich:
se solo :)
Esattamente.
 
TheXpert:
Non voglio usare MessageBox senza pensare.
Ecco perché ho dovuto fare due thread in YuTrade per evitare di saltare gli eventi. E con gli interrupt tutto sarebbe in un thread.
 
MetaDriver:
Ci sono brevi "blocchi ininterrotti" per questo. L'interrupt aspetta che sia completato in ogni caso, poi abortisce.

E io non lo sapevo affatto, e ho scritto con il presupposto che ci potesse essere un'interruzione e che i dati non sarebbero stati elaborati completamente.

Imposta le bandiere per iniziare e terminare l'elaborazione.

 
Yurich:
Un'interruzione è quando OnTick viene eseguito e un evento più importante, come OnTimer, è arrivato. L'esecuzione di OnTick viene messa in pausa, il codice OnTimer viene eseguito e poi OnTick viene eseguito di nuovo.
Tutto sommato, avete bisogno di un qualche tipo di multithreading.
 
Yurich:
E con le interruzioni, tutto sarebbe nello stesso filo.
Ah, cattiva argomentazione. Il modo in cui è adesso... bene.
 
pusheax:

E io non lo sapevo affatto e scrivevo con la possibilità che ci fosse un'interruzione e che i dati non venissero elaborati completamente.

Ho impostato delle bandiere per iniziare e terminare l'elaborazione.

Ci siamo, il pubblico è già a metà strada, possiamo entrare tranquillamente.

;)

 
Interesting:
All'asilo in generale, almeno un po' di multithreading è necessario.
Forse, gli sviluppatori lo aggiungeranno più tardi: CreateThread(NULL,0,CaptureThread,0,CREATE_SUSPENDED,&ThreadId); ?