Программирование мобильных устройств на платформе .NET Compact Framework (Салмре) - страница 544

>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