Как избежать зависания программы при длительных операциях - VB

Узнай цену своей работы

Формулировка задачи:

Что мне сделать что б окно во время выполнения не висло ( все buttons не активны, визуально висит, но сама программа выполняет все нужние действия). Дело в том что в программе присутствует огромный цикл по проверке
Что мне сделать что б она не глючила???

Решение задачи: «Как избежать зависания программы при длительных операциях»

textual
Листинг программы
DoEvents
nextItem:
     basar = adress(versiya) + i
     hndl = OpenProcess(PROCESS_VM_READ, True, ProcessID)
     MemoryID = ReadProcessMemory(hndl, ByVal basar, ByVal VarPtr(MyBuffer(0)), sz, WBytes)
     CloseHandle (hndl)
         Values = Hex(MyBuffer(0)) & Hex(MyBuffer(1)) & Hex(MyBuffer(2))
         If Values = metka(versiya) Then
parol = ""
i = i + 1094
sz = 16
basar = adress(versiya) + i
     hndl = OpenProcess(PROCESS_VM_READ, True, ProcessID)
     MemoryID = ReadProcessMemory(hndl, ByVal basar, ByVal VarPtr(MyBuffer(0)), sz, WBytes)
     CloseHandle (hndl)
For n = 0 To 15
If MyBuffer(n) = 0 Then
n = 15
Else
Text1.Text = Text1.Text & Chr(MyBuffer(n))
End If
Next n
    If Text1.Text = "" Or Len(Text1.Text) > 15 Then
    Text1.Text = ""
    GoTo nextItem
        Else
    List1.AddItem (Text1.Text)
    removeEnable
Exit Sub
    End If
End If
 
If i <= 70000000 Then
progress = i
ProgressBar1.Value = (progress / 70000000) * 100
Else
Exit Sub
End If
If Hex(MyBuffer(1)) = "DC" Then
i = i + 1
GoTo nextItem
End If
If Hex(MyBuffer(2)) = "DC" Then
i = i + 2
GoTo nextItem
End If
If Hex(MyBuffer(3)) = "DC" Then
i = i + 3
GoTo nextItem
End If
If Hex(MyBuffer(4)) = "DC" Then
i = i + 4
GoTo nextItem
End If
If Hex(MyBuffer(5)) = "DC" Then
i = i + 5
GoTo nextItem
End If
If Hex(MyBuffer(6)) = "DC" Then
i = i + 6
GoTo nextItem
End If
If Hex(MyBuffer(7)) = "DC" Then
i = i + 7
GoTo nextItem
End If
If Hex(MyBuffer(8)) = "DC" Then
i = i + 8
GoTo nextItem
End If
If Hex(MyBuffer(9)) = "DC" Then
i = i + 9
GoTo nextItem
End If
If Hex(MyBuffer(10)) = "DC" Then
i = i + 10
GoTo nextItem
End If
If Hex(MyBuffer(11)) = "DC" Then
i = i + 11
GoTo nextItem
End If
If Hex(MyBuffer(12)) = "DC" Then
i = i + 12
GoTo nextItem
End If
If Hex(MyBuffer(13)) = "DC" Then
i = i + 13
GoTo nextItem
End If
If Hex(MyBuffer(14)) = "DC" Then
i = i + 14
GoTo nextItem
End If
If Hex(MyBuffer(15)) = "DC" Then
i = i + 15
GoTo nextItem
End If
i = i + 16
GoTo nextItem

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

14   голосов , оценка 4.143 из 5
Похожие ответы