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

Салмре Иво

Шрифт:

testItem = System.Convert.ToInt64("123456789012345")

Dim nextPrimeFinder As FindNextPrimeNumber

nextPrimeFinder = New FindNextPrimeNumber(testItem)

nextPrimeFinder.findNextHighestPrime

Dim nextHighestPrime As Long

nextHighestPrime = nextPrimeFinder.getPrime

MsgBox(CStr(nextHighestPrime))

'Сколько времени заняли вычисления?

Dim calculation_time As Integer

calculationtime = nextPrimeFinder.getTickCountDelta

MsgBox(CStr(calculation time) + " мс")

End Sub

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

'Код, обрабатывающий событие щелчка на кнопке Button2 формы

'Вызвать функцию поиска простого числа из другого потока!

'(Данный поток блокироваться не будет)

'Для отслеживания состояния выполнения задачи используем конечный автомат

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

Private Sub Button2_Click(ByVal senderAs System.Object, _

ByVal eAs System.EventArgs) Handles Button2.Click

Dim testItem As Long

testItem = System.Convert.ToInt64("123456789012345")

Dim nextPrimeFinderAs FindNextPrimeNumber

nextPrimeFinder = New FindNextPrimeNumber(testItem)

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

'Выполнить обработку в другом потоке

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

nextPrimeFinder.findNextHighestPrime_Async

'Войти в цикл и ожидать до тех пор, пока не будет найдено простое число

'или выполнение не будет прекращено

While ((nextPrimeFinder.getProcessingState <> _

FindNextPrimeNumber.ProcessingState.foundPrime) And _

(nextPrimeFinder.getProcessingState <> _

FindNextPrimeNumber.ProcessingState.aborted))

'ТОЛЬКО В ТЕСТОВОМ КОДЕ:

'Отобразить окно сообщений и предоставить пользователю возможность

'убрать его с экрана.

'Это позволяет организовать паузу

MsgBox("Поиск продолжается... Щелкните на кнопке OK")

'Мы могли бы прекратить поиск путем следующего вызова функции:

'nextPrimeFinder.setProcessingState(

' FindNextPrimeNumber.ProcessingState.requestAbort)

End While

'Осуществить корректный выход в случае прекращения поиска

If (nextPrimeFinder.getProcessingState = _

FindNextPrimeNumber.ProcessingState.aborted) Then

MsgBox("Поиск прекращен!")

Return

End If

Dim nextHighestPrime As Long

nextHighestPrime = nextPrimeFinder.getPrime

MsgBox(CStr(nextHighestPrime))

'Сколько времени заняли вычисления?

Dim calculation_time As Integer

calculation_time = nextPrimeFinder.getTickCountDelta

MsgBox(CStr(calculation_time) + " мс")

End Sub

Примеры к главе 7 (производительность: введение)

Листинг 7.1. Пример кода для измерения временных интервалов, который вы можете использовать для хронометрирования работы своих приложений

Option Strict On

Imports System

Friend Class PerformanceSampling

'Значение этого параметра может быть задано произвольным, но количество

  • Читать дальше
  • 1
  • ...
  • 239
  • 240
  • 241
  • 242
  • 243
  • 244
  • 245
  • 246
  • 247
  • 248
  • 249
  • ...

Ебукер (ebooker) – онлайн-библиотека на русском языке. Книги доступны онлайн, без утомительной регистрации. Огромный выбор и удобный дизайн, позволяющий читать без проблем. Добавляйте сайт в закладки! Все произведения загружаются пользователями: если считаете, что ваши авторские права нарушены – используйте форму обратной связи.

Полезные ссылки

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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