visual una suma matriz matrices llenar hacer for filas errores ejemplos control como comment columnas ciclo vb.net process vb6

vb.net - matrices - suma de filas y columnas de una matriz en visual basic



¿Cómo retraso la ejecución del código en Visual Basic(VB6)? (7)

Divide tu código en 2 procesos. Ejecute el primero, luego ejecute su "proceso de larga ejecución", luego ejecute el segundo proceso.

Tengo un proceso de larga ejecución en VB6 que quiero terminar antes de ejecutar la siguiente línea de código. ¿Cómo puedo hacer eso? Función incorporada? ¿Puedo controlar cuánto tiempo debo esperar?

Ejemplo trivial:

Call ExternalLongRunningProcess Call DoOtherStuff

¿Cómo retraso el ''DoOtherStuff''?


Ejecute su proceso de larga ejecución en el medio de su proceso actual y espere a que se complete.


VB.Net: Utilizaría un identificador de evento WaitOne .

VB 6.0: He visto un DoEvents Loop.

Do If isSomeCheckCondition() Then Exit Do DoEvents Loop

Finalmente, puedes simplemente dormir:

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



System.Threading.Thread.Sleep(500)


Si bien la respuesta de Nescio (DoEvents) funcionará, su aplicación usará el 100% de una CPU. El sueño hará que la IU no responda. Lo que necesitas es una combinación de los dos, y la combinación mágica que parece funcionar mejor es:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) While IsStillWaitingForSomething() DoEvents DoEvents Sleep(55) Wend

¿Por qué dos DoEvents y uno duermen durante 55 milisegundos? El tiempo de espera de 55 milisegundos es la porción más pequeña que puede manejar VB6, y el uso de dos DoEvents a veces es necesario en instancias en las que se necesita una gran capacidad de respuesta (no por la API, pero si la aplicación responde a eventos externos, SendMessage, Interupts, etc. )


Me gustaría que simplemente añadieras .NET Framework System.dll o lo que sea a las referencias de tu proyecto para que puedas hacer esto:

Dim ALongTime As Integer = 2000 System.Threading.Thread.Sleep(ALongTime)

...cada vez. Tengo VB6 y VB.net 2008 en mi máquina, y siempre es difícil para mí cambiar de IDE muy diferentes.