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

Тут можно читать онлайн Иво Салмре - Программирование мобильных устройств на платформе .NET Compact Framework - бесплатно полную версию книги (целиком) без сокращений. Жанр: comp-programming, издательство Издательский дом Вильямс, год 2006. Здесь Вы можете читать полную версию (весь текст) онлайн без регистрации и SMS на сайте лучшей интернет библиотеки ЛибКинг или прочесть краткое содержание (суть), предисловие и аннотацию. Так же сможете купить и скачать торрент в электронном формате fb2, найти и слушать аудиокнигу на русском языке или узнать сколько частей в серии и всего страниц в публикации. Читателям доступно смотреть обложку, картинки, описание и отзывы (комментарии) о произведении.
  • Название:
    Программирование мобильных устройств на платформе .NET Compact Framework
  • Автор:
  • Жанр:
  • Издательство:
    Издательский дом Вильямс
  • Год:
    2006
  • Город:
    Москва • Санкт-Петербург • Киев
  • ISBN:
    5-8459-0989-9
  • Рейтинг:
    4.22/5. Голосов: 91
  • Избранное:
    Добавить в избранное
  • Отзывы:
  • Ваша оценка:
    • 80
    • 1
    • 2
    • 3
    • 4
    • 5

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

Программирование мобильных устройств на платформе .NET Compact Framework - описание и краткое содержание, автор Иво Салмре, читайте бесплатно онлайн на сайте электронной библиотеки LibKing.Ru

Книга известного профессионала в области компьютерных технологий посвящена разработке приложений для широкого спектра мобильных устройств с использованием популярной и постоянно развивающейся платформы .NET Compact Framework. Уникальность этой книги состоит в том, что в ней гармонично переплетены теоретические сведения обо всем цикле разработки программного обеспечения с практическими примерами применения на языках С# и Visual Basic. Подробно рассматриваются концепции, лежащие в основе самой платформы .NET Compact Framework, а также вопросы, связанные с созданием эффективного пользовательского интерфейса, управлением памятью, производительностью и надежностью. Немалое внимание уделяется практическим аспектам разработки приложений для мобильных устройств, среди которых выбор модели представления и доступа к данным, внедрение коммуникационной модели, реализация модели поведения с помощью конечных автоматов и использование XML.

Книга рассчитана на разработчиков разной квалификации, а также может быть полезна для студентов и преподавателей соответствующих специальностей.

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

Программирование мобильных устройств на платформе .NET Compact Framework - читать книгу онлайн бесплатно, автор Иво Салмре
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать
Листинг 9.4. Код, который должен быть помещен в класс Smartphone Form1.cs

//------------------------------------------------------

//Весь этот код должен находиться внутри класса Form1.cs

//------------------------------------------------------

//Объект, который будет выполнять все фоновые вычисления

FindNextPrimeNumber m_findNextPrimeNumber;

//--------------------------------------------

//Обновить текст, информирующий о состоянии...

//--------------------------------------------

void setCalculationStatusText(string text) {

label1.Text = text;

}

//-------------------------------------

//Пункт меню для "выхода" из приложения

//-------------------------------------

private void menuItemExit_Click(object sender, System.EventArgs e) {

this.Close();

}

//----------------------------------------

//Пункт меню для начала фоновых вычислений

//----------------------------------------

private void menuItemStart_Click(object sender, System.EventArgs e) {

//Число, с которого мы хотим начать поиск

long startNumber = System.Convert.ToInt64(textBox1.Text);

//Установить фоновое выполнение

m_findNextPrimeNumber = new FindNextPrimeNumber(startNumber);

//Запустить выполнение задачи в фоновом режиме

m_findNextPrimeNumber.findNextHighestPrime_Async();

//Установить таймер, используемый для контроля длительности вычислений

timer1.Interval = 400;

//400 мс timer1.Enabled = true;

}

//--------------------------------------------

//Пункт меню для "отмены" выполняющейся задачи

//--------------------------------------------

private void menuItemAbort_Click(object sender, System.EventArgs e) {

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

if (m_findNextPrimeNumber == null) return;

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

m_findNextPrimeNumber.setProcessingState(FindNextPrimeNumber.ProcessingState.reguestAbort);

//Немедленно известить пользователя

//o готовности прекратить выполнение...

setCalculationStatusText("Waiting to abort...");

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

}

//-------------------------------------------------------------

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

//позволяет отслеживать состояние выполнения

//фоновых вычислений

//-------------------------------------------------------------

private void timer1_Tick(object sender, System.EventArgs e) {

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

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

if (m_findNextPrimeNumber == null) {

timer1.Enabled =false;

return;

}

//-------------------------------------------------

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

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

//-------------------------------------------------

if (m_findNextPrimeNumber.getProcessingState ==

FindNextPrimeNumber.ProcessingState.aborted) {

timer1.Enabled = false;

m_findNextPrimeNumber = null;

setCalculationStatusText("Prime search aborted");

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

return;

}

//----------------------------------

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

//----------------------------------

if (m_findNextPrimeNumber.getProcessingState ==

FindNextPrimeNumber.ProcessingState.foundPrime) {

timer1.Enabled = false;

//Отобразить результат

setCalculationStatusText("Found! Next Prime = " + m_findNextPrimeNumber.getPrime().ToString());

// setCalculationStatusText("Чиcлo найдено! Следующее простое число = " +

// m_findNextPrimeNumber.getPrime().ToString());

m_findNextPrimeNumber = null;

return;

}

//--------------------------------------

//Вычисления продолжаются. Информировать

//пользователя о состоянии выполнения

//--------------------------------------

//Получить два выходных значения

long numberCalculationsToFar;

long currentItem;

m_findNextPrimeNumber.getExecutionProgressInfo(out numberCalculationsToFar,out currentItem);

setCalculationStatusText("In progress. Looking at: " +

currentItem.ToString() + ". " +

numberCalculationsToFar.ToString() +

" calculations done for you so far!");

// setCalculationStatusText("Вычисления продолжаются. Поиск в области: " +

// currentItem.ToString() + ". " +

// "Для вас выполнено " +

// numberCalculationsToFar.ToString() +

// " расчетов!");

}

Листинг 9.5. Код класса FindNextPrimeNumber.cs

using System;

public class FindNextPrimeNumber {

//Перечисляем возможные состояния

public enum ProcessingState {

notYetStarted,

waitingToStartAsync,

lookingForPrime,

foundPrime,

requestAbort,

aborted

}

long m_startPoint;

long m_NextHighestPrime;

//Поиск какого количества элементов выполнен?

long m_comparisonsSoFar;

//Для какого элемента сейчас выполняется поиск простого числа?

long m_CurrentNumberBeingExamined;

//Вызывается для обновления информации о состоянии выполнения

public void getExecutionProgressInfo(out long numberCalculationsSoFar, out long currentItemBeingLookedAt) {

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

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

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

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

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

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

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

lock (this) {

numberCalculationsSoFar = m_comparisonsSoFar;

currentItemBeingLookedAt = m_CurrentNumberBeingExamined;

}

}

ProcessingState m_processingState;

//---------------------------

//Простейший конечный автомат

//---------------------------

public void setProcessingState(ProcessingState nextState) {

//------------------------------------------------------

//Простейший защитный код, гарантирующий

//невозможность перехода в другое состояние, если задача

//либо успешно завершена, либо успешно отменена

//------------------------------------------------------

if ((m_processingState == ProcessingState.aborted) ||

(m_processingState == ProcessingState.foundPrime)) {

return;

}

//Разрешить изменение состояния

m_processingState = nextState;

}

public ProcessingState getProcessingState {

get {return m_processingState;}

}

//------------------------

//Возвращает простое число

//------------------------

public long getPrime() {

if (m_processingState != ProcessingState.foundPrime) {

throw new Exception("простое число еще не найдено!");

}

return m_NextHighestPrime;

}

//Конструктор класса

public FindNextPrimeNumber(long startPoint) {

setProcessingState(ProcessingState.notYetStarted);

m_startPoint = startPoint;

}

//-----------------------------------------------------------

//Создает новый рабочий поток, который будет вызывать функцию

// "findNextHighestPrime()"

//-----------------------------------------------------------

public void findNextHighestPrime_Async() {

System.Threading.ThreadStart threadStart;

threadStart = new System.Threading.ThreadStart(findNextHighestPrime);

Читать дальше
Тёмная тема
Сбросить

Интервал:

Закладка:

Сделать


Иво Салмре читать все книги автора по порядку

Иво Салмре - все книги автора в одном месте читать по порядку полные версии на сайте онлайн библиотеки LibKing.




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


Отзывы читателей о книге Программирование мобильных устройств на платформе .NET Compact Framework, автор: Иво Салмре. Читайте комментарии и мнения людей о произведении.


Понравилась книга? Поделитесь впечатлениями - оставьте Ваш отзыв или расскажите друзьям

Напишите свой комментарий
x