Чтение онлайн

на главную - закладки

Жанры

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

Салмре Иво

Шрифт:

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

 'Не делать ничего, если вычисления не выполняются

 If (m_findNextPrimeNumber Is Nothing) Then Return

 'Установить поток в состояние прекращения выполнения

 m_findNextPrimeNumber.setProcessingState( _

FindNextPrimeNumber.ProcessingState.requestAbort)

 'Немедленно известить пользователя 'o готовности прекратить выполнение...

 setCalculationStatusText("Ожидание прекращения выполнения...")

End Sub

'--------------------------------------------------------------

'Этот таймер, вызываемый потоком пользовательского интерфейса,

'позволяет отслеживать состояние выполнения 'фоновых вычислений

'--------------------------------------------------------------

Private Sub Timer1_Tick(ByVal sender As System.Object, _

 ByVal e As System.EventArgs) Handles Timer1.Tick

 'Если к моменту вызова искомое простое число еще

 'не было найдено, отключить таймер

 If (m_findNextPrimeNumber Is Nothing) Then

Timer1.Enabled = False

Return

 End If

 '-------------------------------------------------

 'Если выполнение было отменено, освободить объект,

 'осуществляющий поиск, и выключить таймер

 '-------------------------------------------------

 If (m_findNextPrimeNumber.getProcessingState = _

FindNextPrimeNumber.ProcessingState.aborted) Then

Timer1.Enabled = False

m_findNextPrimeNumber = Nothing

setCalculationStatusText("Поиск простого числа отменен")

Return

 End If

 '----------------------------------

 'Удалось ли найти правильный ответ?

 '----------------------------------

 If (m_findNextPrimeNumber.getProcessingState = _

Поделиться:
Популярные книги

Пески времени

Шелдон Сидни
Детективы:
триллеры
9.02
рейтинг книги
Пески времени

Родословная. Том 5

Ткачев Андрей Юрьевич
5. Линия крови
Фантастика:
городское фэнтези
аниме
фэнтези
5.00
рейтинг книги
Родословная. Том 5

Я все еще князь. Книга XXI

Дрейк Сириус
21. Дорогой барон!
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Я все еще князь. Книга XXI

Кодекс Крови. Книга IХ

Борзых М.
9. РОС: Кодекс Крови
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга IХ

Гром Раскатного. Том 1

Володин Григорий Григорьевич
1. Штормовой Предел
Фантастика:
боевая фантастика
попаданцы
аниме
5.00
рейтинг книги
Гром Раскатного. Том 1

Кодекс Императора VI

Сапфир Олег
6. Кодекс Императора
Фантастика:
аниме
фэнтези
попаданцы
5.00
рейтинг книги
Кодекс Императора VI

Бастард Императора. Том 9

Орлов Андрей Юрьевич
9. Бастард Императора
Фантастика:
городское фэнтези
аниме
фэнтези
фантастика: прочее
попаданцы
5.00
рейтинг книги
Бастард Императора. Том 9

Поход

Валериев Игорь
4. Ермак
Фантастика:
боевая фантастика
альтернативная история
6.25
рейтинг книги
Поход

Темный Лекарь 9

Токсик Саша
9. Темный Лекарь
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Темный Лекарь 9

История Шотландии с древнейших времен до флодденского сражения 1513 года.

Скотт Вальтер
Научно-образовательная:
история
5.00
рейтинг книги
История Шотландии с древнейших времен до флодденского сражения 1513 года.

Кодекс Охотника. Книга XVII

Винокуров Юрий
17. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVII

И в аду есть герои

Панов Вадим Юрьевич
5. Тайный Город
Фантастика:
боевая фантастика
9.19
рейтинг книги
И в аду есть герои

Наномашины, наследник! Том 9

Новиков Николай Васильевич
9. Первый среди карапузов
Фантастика:
попаданцы
аниме
фэнтези
5.00
рейтинг книги
Наномашины, наследник! Том 9

Неучтенный элемент. Том 12

NikL
12. Антимаг. Вне системы
Фантастика:
фэнтези
5.00
рейтинг книги
Неучтенный элемент. Том 12