Преодоление зависания во время выполнения цикла - VB

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

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

у меня выполняется цикл фор от 1 до 100000. во время каждого прохождения он выбирает из полутораста значений селект кейза одно, потом выводит в статус бар выведено столькото символов, потом наращивает переменную, и т.д. и т.п. как сделать чтобы виндовс не зависал при клике сворачивании и разворачивании окна? и реагировал на нажатия кнопок?

Решение задачи: «Преодоление зависания во время выполнения цикла»

textual
Листинг программы
<font color="blue">Dim</font> m_StopProcess <font color="blue">As</font> <font color="blue">Boolean</font>

<font color="blue">Private</font> <font color="blue">Sub</font> btnRun_Click()
   <font color="blue">Dim</font> i <font color="blue">As</font> <font color="blue">Long</font>
   <font color="blue">Dim</font> j <font color="blue">As</font> <font color="blue">Long</font>
   <font color="blue">Dim</font> s <font color="blue">As</font> <font color="blue">String</font>
   m_StopProcess = False
   j = <font color="darkblue"><b>1</b></font>
   <font color="blue">For</font> i = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> <font color="darkblue"><b>30000</b></font>
      StatusBar1.Panels(<font color="darkblue"><b>1</b></font>) = <font color="teal">"item "</font> & i
      s = s & GetRandomString
      StatusBar1.Panels(<font color="darkblue"><b>2</b></font>) = <font color="blue">Mid</font>(s, <font color="darkblue"><b>1</b></font>, <font color="darkblue"><b>50</b></font>)
      j = j + <font color="darkblue"><b>1</b></font>
      <font color="blue">If</font> j >= <font color="darkblue"><b>100</b></font> <font color="blue">Then</font>
         DoEvents
         j = <font color="darkblue"><b>1</b></font>
      <font color="blue">End</font> <font color="blue">If</font>
      <font color="blue">If</font> m_StopProcess <font color="blue">Then</font> <font color="blue">Exit</font> <font color="blue">For</font>
   <font color="blue">Next</font>
<font color="blue">End</font> <font color="blue">Sub</font>

<font color="blue">Private</font> <font color="blue">Sub</font> btnStop_Click()
   m_StopProcess = True
<font color="blue">End</font> <font color="blue">Sub</font>

<font color="blue">Private</font> <font color="blue">Function</font> GetRandomString() <font color="blue">As</font> <font color="blue">String</font>
   <font color="blue">Dim</font> i <font color="blue">As</font> <font color="blue">Long</font>
   <font color="blue">Dim</font> n <font color="blue">As</font> <font color="blue">Long</font>
   <font color="blue">Dim</font> s <font color="blue">As</font> <font color="blue">String</font>
   n = Rnd * <font color="darkblue"><b>9</b></font> + <font color="darkblue"><b>1</b></font>
   <font color="blue">For</font> i = <font color="darkblue"><b>1</b></font> <font color="blue">To</font> Rnd
      s = s & Chr(Rnd * <font color="darkblue"><b>48</b></font> + <font color="darkblue"><b>49</b></font>)
   <font color="blue">Next</font>
   GetRandomString = s
<font color="blue">End</font> <font color="blue">Function</font>

<font color="blue">Private</font> <font color="blue">Sub</font> Form_QueryUnload(Cancel <font color="blue">As</font> <font color="blue">Integer</font>, UnloadMode <font color="blue">As</font> <font color="blue">Integer</font>)
   m_StopProcess = True
<font color="blue">End</font> <font color="blue">Sub</font>

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


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

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

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