Temporizador - página 7

 
Yurich:
se ao menos :)
Deve ser mais fácil para os programadores, caso contrário teriam de explicar que as variáveis globais só podem ser alteradas no manipulador do OnTick a meio caminho quando o evento do temporizador ocorreu e o programa mudou para ele.
 
Não utilize a MessageBox sem pensar.
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox
Документация по MQL5: Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox
  • www.mql5.com
Стандартные константы, перечисления и структуры / Константы ввода/вывода / MessageBox - Документация по MQL5
 
pusheax:
Isto é provavelmente mais fácil para os programadores, caso contrário teriam de explicar que as variáveis globais só podem ser alteradas a meio caminho no manipulador do OnTick quando um evento temporizador tiver ocorrido e o programa tiver mudado para ele.
Existem curtos "blocos ininterruptos" para isso. A interrupção espera que ela se complete de qualquer maneira, depois aborta.
 
Yurich:
se ao menos :)
Exactamente.
 
TheXpert:
Não utilize a MessageBox sem pensar.
Foi por isso que tive de fazer dois fios no YuTrade para evitar saltar eventos. E com as interrupções tudo estaria num só fio.
 
MetaDriver:
Existem curtos "blocos ininterruptos" para isso. A interrupção espera que ela se complete em qualquer caso, depois interrompe.

E eu não sabia de todo isso, e escrevi com o pressuposto de que poderia ocorrer uma interrupção e que os dados não seriam totalmente processados.

Definir bandeiras para iniciar e terminar o processamento.

 
Yurich:
Uma interrupção é quando o OnTick está a ser executado e um evento mais importante, como o OnTimer, chegou. A execução do OnTick é pausada, o código OnTimer é executado e depois o OnTick é executado novamente.
Em suma, é necessário algum tipo de multithreading.
 
Yurich:
E com as interrupções, tudo estaria no mesmo fio.
Ah, mau argumento. Do modo como está agora -- bom.
 
pusheax:

E eu não sabia nada sobre isso e escrevi com a possibilidade de poder haver uma interrupção e de os dados não serem totalmente processados.

Coloco bandeiras para iniciar e terminar o processamento.

Aqui vamos nós. O público já está a meio caminho, pode entrar em segurança.

;)

 
Interesting:
Jardim de Infância em geral, é necessário pelo menos alguma multi-treitura.
Talvez, os criadores o adicionem algum tempo mais tarde: CreateThread(NULL,0,CaptureThread,0,CREATE_SUSPENDED,&ThreadId); ?