>Private Sub buttonCauseException_Click(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) _
> Handles buttonCauseException.Click
> m_threadExecute.setProcessingState( _
> ThreadExecuteTask.ProcessingState.notYetStarted)
>End Sub
>'Послать асинхронному коду запрос с требованием отмены его выполнения
>Private Sub buttonAbort_Click(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) Handles buttonAbort.Click
> m_threadExecute.setProcessingState( _
> ThreadExecuteTask.ProcessingState.requestAbort)
>End Sub
>'Проверить состояние выполнения
>Private Sub buttonCheckStatus_Click(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) Handles ButtonCheckStatus.Click
> 'Запросить у класса управления потоком, в каком состоянии он находится
> MsgBox(m_threadExecute.State.ToString())
> 'Запросить класс, метод которого выполняется в потоке,
> 'o состоянии выполнения
> MsgBox(m_testMe.m_loopX.ToString())
>End Sub
Листинг 9.4. Код, который должен быть помещен в класс Smartphone Form1.cs
>'------------------------------------------------------
>'Весь этот код должен находиться внутри класса Form1.cs
>'------------------------------------------------------
>'Объект, который будет выполнять все фоновые вычисления
>Private m_findNextPrimeNumber As FindNextPrimeNumber
>'--------------------------------------------
>'Обновить текст, информирующий о состоянии...
>'--------------------------------------------
>Sub setCalculationStatusText(ByVal text As String)
> Label1.Text = text
>End Sub
>Private Sub menuItemExit_Click(ByVal sender As _
> System.Object, ByVal e As System.EventArgs) _
> Handles menuItemExit.Click
> Me.Close()
>End Sub
>'----------------------------------------
>'Пункт меню для начала фоновых вычислений
>'----------------------------------------
>Private Sub menuItemStart Click(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) _
> Handles menuItemStart.Click
> 'Число, с которого мы хотим начать поиск
> Dim startNumber As Long = System.Convert.ToInt64(TextBox1.Text)
> 'Установить фоновое выполнение
> m_findNextPrimeNumber = New FindNextPrimeNumber(startNumber)
> 'Запустить выполнение задачи в фоновом режиме...
> m_findNextPrimeNumber.findNextHighestPrime_Async()
> 'Установить таймер, используемый для контроля длительности вычислений
> Timer1.Interval = 400 '400 мс
> Timer1.Enabled = True
>End Sub
>'--------------------------------------------
>'Пункт меню для "отмены" выполняющейся задачи
>'--------------------------------------------
>Private Sub menuItemAbortClick(ByVal sender As System.Object, _
> ByVal e As System.EventArgs) Handles menuItemAbort.Click