Necesito ayuda...

Iniciado por IvanUgu, 17 Noviembre 2008, 14:39 PM

0 Miembros y 1 Visitante están viendo este tema.

IvanUgu

hola a todos necesito ayuda con lo siguiente

Estoy haciendo un programa que necesita repetir una misma instruccion con un retardo minimo, tal que el control timer no me sirve.
El codigo que estoy usando en este momento no me convence del todo

For TT = 1 To VARIABLE
    For T = 1 To 10000: Next T
Next TT


Este codigo tiene la contra de aumentar conciderablemente el uso del CPU.
Por lo tanto cuando necesito mayor retardo es cuando mas esta exigido, y tendria que estar menos exigido en realidad. El programa se vuelve muy inestable, aveces aparece como (No responde) y luego retoma...

Ya probe pon el control Sleep y tampoco me dio resultado...

Agradeceria mucho que me ayuden con esto, ya que al no tener un codigo claro para este motivo me afecta el funcionamiento de todo el programa...

Saludos IvanUgu
   

Para atrapar a un ladron se necesita otro ladron...
El diablo sabe por diablo, pero mas sabe por viejo...

[||HackerDark||]

CitarYa probe pon el control Sleep y tampoco me dio resultado...

esta seguro de que lo probaste bien el sleep por que yo uso sleep especialmente para retardos ::)
describe que pasa con el sleep




Angeldj27

Usa el DoEvents...

Saludos...


"Que vamos a hacer Mañana?..... Lo mismo que hacemos todos los dias Pinky tratar de Conquistar el Mundoooo!!!!!

IvanUgu

Gracias por responder... ahora voy a probar bien con el Sleep y despues les cuento como me fue
   

Para atrapar a un ladron se necesita otro ladron...
El diablo sabe por diablo, pero mas sabe por viejo...

Zeroql

si no te da con el sleep prueba con static timer del control timer
Dime y lo olvido, enseñame y lo recuerdo, involucrame y lo aprendo.
/.-ZEROQL.-\   -----  #937675#


vivachapas

puedes usar:
un timer
un bucle
Sleep
GetTickCount

:P

Dessa

#6
Se puede hacer una pausa inferior a 16 milisegundos ???



Private Declare Function GetTickCount Lib "kernel32" () As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Private Sub Form_Load()

Timer1.Interval = 100
Command1.Caption = "GetTickCount"
Command2.Caption = "Sleep"

End Sub

Private Sub Form_DblClick()

Me.Cls

End Sub

Private Sub Command1_Click()

Me.Print GetTickCount
x = GetTickCount: While GetTickCount < x + 15: DoEvents: Wend
Me.Print GetTickCount

End Sub


Private Sub Command2_Click()

Me.Print GetTickCount
Sleep (1)
Me.Print GetTickCount

End Sub


Adrian Desanti

vivachapas

mmm si(?)

modificando ese codigo q pusiste... el del gettickcount xD

no lo viste mucho no?

Dessa

1 y 15 me da lo mismo , no puedo bajar los 16 milisegundos

Private Sub Command1_Click()

Me.Print GetTickCount
x = GetTickCount: While GetTickCount < x + 15: DoEvents: Wend
Me.Print GetTickCount

Me.Print GetTickCount
x = GetTickCount: While GetTickCount < x + 1: DoEvents: Wend
Me.Print GetTickCount

End Sub

No pobraste mucho no ???
Adrian Desanti

vivachapas

a mi no me dio lo mismo cuando lo probe :S
dependera de la velocidad del procesador de tu computadora...