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

Салмре Иво

Шрифт:

Dim end_point_of_search As Long end_point_of_search = _

CLng(System.Math.Sqrt(potentialPrime)) + 1

Dim current_test_item As Long = 3

While (current_test_item <= end_point_of_search)

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

'Проверить, не поступила ли команда прекратить выполнение!

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

If (m_processingState <> ProcessingState.lookingForPrime) Then

Return False

End If

'Если число делится без остатка,

'значит, оно не является простым

If (potentialPrime Mod current_test_item = 0) Then

Return False

End If

'Увеличить число на два

current_test_item = current test_item + 2

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

'Увеличить число проверенных элементов

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

'ПРИМЕЧАНИЕ. Мы используем блокирование потока для уверенности в том,

'что эти значения не считываются во время выполнения операции

'их записи. Поскольку доступ к m_comparisonsSoFar

'и m_CurrentNumberBeingExamined могут осуществлять

'одновременно несколько нитей, любая выполняемая над ними

'операция записи/считывания должна синхронизироваться с "блокировкой",

'что будет гарантировать "атомарность" этих операций

SyncLock (Me)

m_CurrentNumberBeingExamined = potentialPrime

m_comparisonsSoFar = m_comparisonsSoFar + 1

End SyncLock

End While

'Число является простым

Return True

End Function

End Class

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

Листинг 10.1. Использование XML DOM для сохранения данных в файле и их загрузки

Option Strict On

Option Compare Binary

Imports System

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

'Демонстрирует сохранение и загрузку файлов с

'использованием объектной модели документа XML

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

Public Class SaveAndLoadXML_UseDOM

'XML-дескрипторы, которые мы будем использовать в нашем документе

Const XML_ROOT_TAG As String = "AllMyData"

Const XML_USERINFO_TAG As String = "UserInfo"

Const XML_USERID_TAG As String = "UserID"

Const XML_NAMEINFO_TAG As String = "Name"

Const XML_FIRSTNAME _TAG As String = "FirstName"

Const XML_LASTNAME_TAG As String = "LastName"

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

'Загружает пользовательское состояние

' [in] fileName: Имя файла, используемого для сохранения данных

' [out] userId: Загруженный идентификатор пользователя

' [out] firstName: Загруженное имя пользователя

' [out] lastName: Загруженная фамилия пользователя

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

Public Shared Sub XML_LoadUserInfo(ByVal fileName As String, _

ByRef userId As Integer, ByRef firstName As String, _

ByRef lastName As String)

'Начинаем с нулевых значений

  • Читать дальше
  • 1
  • ...
  • 260
  • 261
  • 262
  • 263
  • 264
  • 265
  • 266
  • 267
  • 268
  • 269
  • 270
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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