SOCORRO!! PORQUE NAO FUNCIONA???
O código abaixo deveria acontecer simultaneamente quando acionados juntos, mas funciona. Quando você aciona o TestaVariavel2 o TestaVariavel1 para. Preciso usar com index, então, como fazer isso direito para que as duas funcionem juntas?
Para testar, coloquem dois botões.
No botão 1 o comando:
TestaVariável1(1)
No botão 2, o comando:
TestaVariável2(2)
Porque isso não funciona????
Para testar, coloquem dois botões.
No botão 1 o comando:
TestaVariável1(1)
No botão 2, o comando:
TestaVariável2(2)
Private Sub TestaVariavel1(ByVal index As Integer)
Dim idx As Double
Do Until idx = 1000000
Text1(index).Text = idx
DoEvents
idx = idx + 1
Loop
End Sub
Private Sub TestaVariavel2(ByVal index As Integer)
Dim idx As Double
Do Until idx = 1000000
Text1(index).Text = idx
DoEvents
idx = idx + 1
Loop
End Sub
Porque isso não funciona????
Deixa ver se entendi, você está querendo usar multi-tarefas com VB6?
Amigo, não funciona porque dentro de cada um dos loops, tem o comando [Ô]DoEvents[Ô], isso significa que todo e qualquer evento será ouvido e executado. Logo, se está no TestaVariavel1 e clica no botão, ele vai parar o loop e executar o que quer que esteja no código do botão.
O que exatamente você quer fazer?
Amigo, não funciona porque dentro de cada um dos loops, tem o comando [Ô]DoEvents[Ô], isso significa que todo e qualquer evento será ouvido e executado. Logo, se está no TestaVariavel1 e clica no botão, ele vai parar o loop e executar o que quer que esteja no código do botão.
O que exatamente você quer fazer?
Puxa Kerplunk! Acho que o temo certo é reamente mult-tarefas. Acho que você tem razão com relação ao [Ô]DoEvents[Ô]. Preciso que os dois rodem simultaneamente sem um interromper o outro. Se eu tirar o DoEvents talvez dê certo, mas fico sem ver os resultados simultaneamente. Como fazer isso então???
Não tem como executar dois loop simultaneamente, a única forma seria com o uso de Threads mas o VB6 não funciona bem com Threads.
Você tem que entender que mesmo com o DoEvents o VB roda tudo em um único Thread, com isso você sempre vai ter apenas uma rotina executando de cada vez, o DoEvents pode fazer parecer que permite que outras coisas rodem junto, mas não é o caso, na verdade ele só permite que o programa processe a fila de mensagens dele, e isso é de forma sÃncrona, então enquanto ele não termina isso a chamada do DoEvents não retorna e esse parte do código fica parado.
Você tem que entender que mesmo com o DoEvents o VB roda tudo em um único Thread, com isso você sempre vai ter apenas uma rotina executando de cada vez, o DoEvents pode fazer parecer que permite que outras coisas rodem junto, mas não é o caso, na verdade ele só permite que o programa processe a fila de mensagens dele, e isso é de forma sÃncrona, então enquanto ele não termina isso a chamada do DoEvents não retorna e esse parte do código fica parado.
Caramba!!! To encalacrado!! Vou ter que repensar meu projeto. JESUS ACENDA A LUZ. Valeu gente. Muito obrigado aos dois.
Tópico encerrado , respostas não são mais permitidas