Yurich: Uma interrupção é quando o OnTick está a ser executado e um evento mais importante, como o OnTimer, chegou. OnTick é pausado, o código OnTimer é executado, depois OnTick continua a correr novamente.
OnTimer, OnTick, OnTrade... Estas são as interrupções.
Foi o que eu pensei no início. Mas existem variantes. Por exemplo, não podemos marcar algum OnTimer com a palavra interrupções e saber que será chamado precisamente no momento da ocorrência do evento, interrompendo o processamento de quaisquer outros eventos (o esquema MSDOS de linha única - armazenar pilha, lidar com interrupções, recuperar pilha, passar o controlo). Tal esquema poderia resolver muitos problemas usando métodos mais simples. Por exemplo, o OnTick chamado por este esquema parece bastante agradável. Há aqui subtilezas - será necessário processar entradas repetidas (por exemplo, duas carraças com uma pequena lacuna), mas é solvível em geral.
TheXpert: Que chatice. Sim, é um sonho assustador.
Não, não é assustador. Existem esquemas antigos experimentados e testados sobre como evitar as franjas.
Mas continua a ser um sonho. Não acredito que os criadores o façam. Embora os benefícios sejam inegáveis.
Eu, por exemplo, poderia fazer cálculos de fundo no OnTimer, com uma pequena frequência (cerca de uma vez em 5 segundos) de duração de meio período de tempo. E não haveria necessidade de se preocupar em manusear carraças, o que poderia apenas interromper o cálculo de fundo, e depois devolvê-lo correctamente ao seu devido lugar. E agora é mais fácil colocá-lo num gráfico separado do que processá-lo correctamente no mesmo fio em que as carraças estão a fazer carraças. Embora houvesse tempo suficiente para todos eles no mesmo fio.
pusheax: Por exemplo, se alguém definir Sleep(100000); em OnTick handler, o que será queOnTimer, OnTrade não terá vida alguma?
Neste momento é exactamente o que é. Mas o suicídio não é uma coisa difícil. É pior, quando há uma caixa de mensagens no meu ecrã, e eu estou a beber chá na cozinha. Yurich faz uma boa observação.
MetaDriver: É assim que as coisas são neste momento. Mas o suicídio não é difícil. É pior quando há uma caixa de mensagens no ecrã e eu estou na cozinha a beber chá. Yurich faz uma boa observação.
Ah, agora percebo, o evento Temporizador em si vai acontecer, mas o seu tratamento OnTimer será adiado até que o OnTick termine.
Uma interrupção é quando o OnTick está a ser executado e um evento mais importante, como o OnTimer, chegou. OnTick é pausado, o código OnTimer é executado, depois OnTick continua a correr novamente.
OnTimer, OnTick, OnTrade... Estas são as interrupções.
Que diabo. Isto é um pesadelo.
Que chatice. Sim, é um sonho assustador.
Não, não é assustador. Existem esquemas antigos experimentados e testados sobre como evitar as franjas.
Mas continua a ser um sonho. Não acredito que os criadores o façam. Embora os benefícios sejam inegáveis.
Eu, por exemplo, poderia fazer cálculos de fundo no OnTimer, com uma pequena frequência (cerca de uma vez em 5 segundos) de duração de meio período de tempo. E não haveria necessidade de se preocupar em manusear carraças, o que poderia apenas interromper o cálculo de fundo, e depois devolvê-lo correctamente ao seu devido lugar. E agora é mais fácil colocá-lo num gráfico separado do que processá-lo correctamente no mesmo fio em que as carraças estão a fazer carraças. Embora houvesse tempo suficiente para todos eles no mesmo fio.
Por exemplo, se alguém definir Sleep(100000); no manipulador OnTick, será queOnTimer e OnTrade não têm vida alguma?
o evento comercial permanecerá na fila de espera e será tratado
Não confundir Tick, Comércio, Eventos Temporizadores e seus manipuladores OnTick, OnTrade, OnTimer
Por exemplo, se alguém definir Sleep(100000); em OnTick handler, o que será queOnTimer, OnTrade não terá vida alguma?
Na realidade Yurich descreveu interrupção no sentido clássico, não OnTick, OnTimer interrupt handling.
Compreendo o que ele descreveu.
Para sincronizar dados e perturbar o acesso numa aplicação com uma única rosca é a altura da idiotice.
É assim que as coisas são neste momento. Mas o suicídio não é difícil. É pior quando há uma caixa de mensagens no ecrã e eu estou na cozinha a beber chá. Yurich faz uma boa observação.
É provavelmente assim que funciona.