> '---------------------------------------------------------
> 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 = _