Programación VB para programas que utilizan declaraciones de bucle para generar interrupciones en los cálculos o generar menos datos de los que debería la cantidad real de datos
Además, si envía inmediatamente el cuadro de texto cada vez que obtiene un resultado durante el proceso de cálculo, el cuadro de texto se actualizará con demasiada frecuencia, lo que supone un gran desperdicio de recursos del sistema. que genere los resultados primero al realizar el bucle. Asigne los datos del cuadro de texto a una cadena, use un temporizador para asignar la cadena en el cuadro de texto al texto cada segundo y borre la cadena, y recuerde agregar DoEvents en el bucle ( regrese al programa para actualizar el cuadro de texto Control, o agregue Textn.Refresh directamente), lo que puede reducir la cantidad de actualizaciones. También se puede utilizar Refresh), lo que puede mejorar en gran medida la eficiencia informática de su programa. Su programa consume muchos recursos y debería resolver este problema.
Lo siento, debería ser DoEvents
Estoy seguro de que la cantidad total de datos es demasiado grande para que puedas calcular los resultados, o puede ser que la interfaz de usuario esté fuera de control porque el fondo consume demasiados recursos, su programa produjo alrededor de 3900 resultados cuando se ejecutó.
Ejecuté su código. En primer lugar, me aseguré de que no hubiera nada malo con el concepto de su programa y que el bucle no se perdiera. Ejecuté su programa en 110 **** y obtuve 165685 resultados. .
Pero hice una pequeña modificación antes de ejecutar su código, porque hay muchas operaciones inútiles y bucles inútiles en su programa, que pueden eliminarse por completo.
Esto es lo que pienso: si después de que los primeros números alcanzan un cierto valor, la suma de a, b, c, d, e, f, g es mayor o igual a 110, entonces hay serán siete números después. Los bucles agregados no deben ser iguales a 110, entonces estos bucles son inútiles. Por lo tanto, debe agregar una declaración de prueba en cada nivel de anidamiento del bucle del programa para ver si la suma de los primeros números es mayor que 110 (la suma de siete números es mayor que 110 para determinar la invalidez del bucle posterior) , y si es mayor que 110, entonces use la instrucción Exit For para saltar del ciclo actual, reduciendo así la cantidad de operaciones en el programa a las 37 originales (tomando 110 como ejemplo)
Además, no se recomienda utilizar Siguiente: Siguiente: Siguiente... Las declaraciones de unión reducen la legibilidad del código.
Mi código modificado es el siguiente:
Dim a, b, c, d, e, f, g, x, y As Long
Private Sub Command1_Click()
y = 0
Timer1.Enabled = True
Para a = 1 a 39
Si a gt;= Val(Text1.Text) Luego salga para