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

>  '---------------------------------------------------------

>  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)


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

> userId = 0

> firstName = ""

> lastName = ""

> 'Предполагаем, что данные еще не загружены

> Dim gotUserInfoData As Boolean = False


> Dim xmlDocument As System.Xml.XmlDocument = _