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

Салмре Иво

Шрифт:

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;

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

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

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

  • Моя полка

Контакты

  • chitat.ebooker@gmail.com

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