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

Салмре Иво

Шрифт:

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

 //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;

  • Читать дальше
  • 1
  • ...
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • ...

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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