Temporizador - página 7

 
Yurich:
ojalá :)
Debe ser más fácil para los desarrolladores, de lo contrario tendrían que explicar que las variables globales pueden ser cambiadas en el manejador OnTick sólo a mitad de camino cuando el evento del temporizador ocurrió y el programa cambió a él.
 
No utilices MessageBox de forma irreflexiva.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox - Документация по MQL5
 
pusheax:
Esto es probablemente más fácil para los desarrolladores, de lo contrario tendrían que explicar que las variables globales sólo se pueden cambiar a mitad de camino en el manejador OnTick cuando se ha producido un evento de temporizador y el programa ha cambiado a él.
Para ello, existen breves "bloques ininterrumpidos". La interrupción espera a que se complete de todos modos, y luego aborta.
 
Yurich:
ojalá :)
Exactamente.
 
TheXpert:
No quiero usar MessageBox sin pensar.
Por eso he tenido que hacer dos hilos en YuTrade para no saltarme los eventos. Y con las interrupciones todo estaría en un hilo.
 
MetaDriver:
Para ello, existen breves "bloques ininterrumpidos". La interrupción espera a que se complete en cualquier caso, y luego interrumpe.

Y yo no lo sabía en absoluto, y escribí con la suposición de que podría haber una interrupción y los datos no se procesarían completamente.

Establecer banderas para iniciar y finalizar el procesamiento.

 
Yurich:
Una interrupción es cuando se está ejecutando OnTick y ha llegado un evento más importante, como OnTimer. La ejecución de OnTick se detiene, se ejecuta el código de OnTimer y luego se vuelve a ejecutar OnTick.
En definitiva, necesitas algún tipo de multihilo.
 
Yurich:
Y con las interrupciones, todo estaría en el mismo hilo.
Ah, mal argumento. Tal y como está ahora... bien.
 
pusheax:

Y no lo sabía en absoluto y escribía con la posibilidad de que hubiera una interrupción y los datos no se procesaran por completo.

He establecido banderas para iniciar y finalizar el procesamiento.

Aquí vamos. El público ya está a mitad de camino, podemos entrar con seguridad.

;)

 
Interesting:
En general, se necesita al menos un poco de multithreading.
Tal vez, los desarrolladores lo añadan más adelante: CreateThread(NULL,0,CaptureThread,0,CREATE_SUSPENDED,&ThreadId); ?